This repo is used to build binary release of ESPurna from latest commit to the dev
branch.
Scheduled events are used to trigger the build. See .github/workflows/prepare.yml, .github/workflows/nightly.yml and espurna_nightly_builder helper scripts.
Both workflows can be triggered with a workflow_dispatch event.
See .github/workflows/prepare.yml
This workflow is (supposed to be) triggered on a schedule. Unless the following tests pass, this stage will result in an error:
- The commit that 'dev' branch points at is different from the 'commit.txt' contents.
- All Checks of the target repository 'dev' branch are successful.
- 'master' branch does not point to the same commit as 'dev', as we don't want to re-do the
master
release.
Finally, the 'commit.txt' is updated with the latest SHA value of the 'dev' branch.
See .github/workflows/nightly.yml
When 'prepare.yml' is successful or user triggers the workflow manually:
- 'nightly' branch is fetched with fetch depth 2, and HEAD and HEAD~1 'commit.txt' contents are saved.
- Target repository is fetched using the HEAD commit and the generate_release_sh.py script is called (which is also used to build the
master
branch release) - New pre-release is created with a tag YYYYMMDD, based on the latest modification date of the 'commit.txt'. Body should contain the HEAD~1...HEAD comparison URL.
- All of .bin files are uploaded as assets of the pre-release.
Incomplete and not working right now
.gitlab-ci.yml uses the same process as original Travis build script, but with notable differences:
- Custom container image (see Dockerfile) is used
- It is pretending to be Travis for build.sh
- Build takes more time than travis
- GitHub commit status / GitHub Checks for 'nightly' branch
- Hide commit status for 'builder' branch
- Hide releases until build is complete
- Redo build completely when triggered by API (remove tag, release and it's assets)
- GitLab integration