| size | 14580 |
|---|
Thierry Martinez (SED) Developer meetup, 13 december 2022
- A continuous integration (CI) platform for GitHub-hosted projects, launched on 16 October 2018.
-
Providing GitHub-hosted runners for Linux, MacOS and Windows.
-
File-based workflow specification:
.github/workflows/*.yml. A command-line tool,actis available for running workflows locally (or from other continuous integration platforms): https://github.com/nektos/act -
Very easy to extend (new reusable actions can be defined in git repositories), Linux runners can run docker containers, user-provided runners can be used.
Continuous integration (CI): practice of short-lived development cycles, automatically tested and shared regularly between developers involved in a project.
Continuous integration platforms: Github Actions, ci.inria.fr, gitlab.inria.fr.
Automating testing (and CI in general) relies on version control and automated builds.
-
speed up development process,
-
ease collaboration
-
allow programmers to be more confident for not introducing regression and bugs.
This is a step towards broader goals such as reproducible builds and reproducible research.
-
Hardware specification for Windows and Linux virtual machines:
- 2-core CPU (x86_64)
- 7 GB of RAM
- 14 GB of SSD space
-
Hardware specification for macOS virtual machines:
- 3-core CPU (x86_64)
- 14 GB of RAM
- 14 GB of SSD space
Usage limits, billing: available for free for public repositories,
- up to 20 concurrent jobs (Linux/Windows),
- 5 concurrent jobs for macOS.
In .github/workflows/example.yml:
on: [push]
jobs:
build-example:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Compile
run: |
gcc -o hello_word hello_world.c
- name: Test
run: |
./hello_word > output.txt
diff output.txt excepted.txt-
Test pull-requests automatically
-
Check code formatting, linting
-
Publish releases and documentation (Continuous Delivery/Continuous Deployment)
-
Generate automatic posts in pull-requests for coverage analysis, performance reports
-
Automatic triage of pull-requests, use chatGPT for automatically answering pull requests, etc, etc
Alexandre Abadie (SED) and myself will give a training course about GitHub Actions on



