forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 25
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request qmk#478 from lesshonor/ci-buildall
refactor: build all CI workflow
- Loading branch information
Showing
1 changed file
with
89 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,26 +1,102 @@ | ||
name: CI | ||
on: [ pull_request, push, workflow_dispatch ] | ||
|
||
on: | ||
push: | ||
workflow_dispatch: | ||
pull_request: | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} | ||
cancel-in-progress: true | ||
|
||
env: | ||
REGEX_ANSI_COLOR: 's/\x1b\[[0-9;]*[mGKHF]//g' | ||
REGEX_MAKE_OUTPUT: '/^g*make\[1]: \(Enter\|Leav\)ing directory ''/d' | ||
|
||
permissions: {} | ||
|
||
jobs: | ||
build: | ||
check-uid: | ||
name: Check Vial UIDs | ||
runs-on: ubuntu-latest | ||
|
||
container: qmkfm/qmk_cli | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: (actions) Checkout Vial repo | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
persist-credentials: false | ||
|
||
- name: Verify Vial UID is unique | ||
- name: Verify Vial UID is unique per-keyboard | ||
run: python3 util/ci_vial_verify_uid.py | ||
|
||
- name: Compile Vial keyboards | ||
build-default: | ||
name: Build default keymaps for Vial | ||
runs-on: ubuntu-latest | ||
container: ghcr.io/qmk/qmk_cli | ||
env: | ||
KEYMAP: default | ||
|
||
steps: | ||
- name: (actions) Checkout Vial repo | ||
uses: actions/checkout@v3 | ||
with: | ||
persist-credentials: false | ||
submodules: recursive | ||
|
||
- name: Build | ||
id: build | ||
run: | | ||
git config --global --add safe.directory $(pwd) | ||
if ! qmk mass-compile -j $(nproc) $(qmk find -km vial | sed "s/:vial$/:${KEYMAP}/"); | ||
then | ||
echo "::error::$(ls -1 .build/failed.log.* | wc -l) keymaps failed to build. See logs and/or job summary for details." | ||
exit 1 | ||
fi | ||
- name: Dump failure logs | ||
if: ${{ failure() && steps.build.conclusion == 'failure' }} | ||
run: | | ||
echo '### Failure logs' | tee -a "${GITHUB_STEP_SUMMARY}" | ||
cd .build || exit 1 | ||
for log in failed.log.*; do | ||
pretty_logname="$(echo "${log}" | sed "s/^failed\.log\.[0-9]\+\.// ; s/\.${KEYMAP}$//")" | ||
printf '\n::group::%s\n%s\n::endgroup::\n' "${pretty_logname}" "$(sed "${REGEX_MAKE_OUTPUT}" < "${log}")" | ||
printf '\n<details>\n<summary>%s</summary>\n\n```\n%s\n```\n\n</details>\n' \ | ||
"${pretty_logname}" "$(sed "${REGEX_MAKE_OUTPUT} ; ${REGEX_ANSI_COLOR}" < "${log}")" >> "${GITHUB_STEP_SUMMARY}" | ||
done | ||
build-vial: | ||
name: Build Vial keymaps | ||
runs-on: ubuntu-latest | ||
container: ghcr.io/qmk/qmk_cli | ||
env: | ||
KEYMAP: vial | ||
|
||
steps: | ||
- name: (actions) Checkout Vial repo | ||
uses: actions/checkout@v3 | ||
with: | ||
persist-credentials: false | ||
submodules: recursive | ||
|
||
- name: Build | ||
id: build | ||
run: | | ||
git config --global --add safe.directory $(pwd) | ||
make git-submodule | ||
python3 util/ci_compile_vial_keyboards.py | ||
if ! qmk mass-compile -km "${KEYMAP}" -j $(nproc); | ||
then | ||
echo "::error::$(ls -1 .build/failed.log.* | wc -l) keymaps failed to build. See logs and/or job summary for details." | ||
exit 1 | ||
fi | ||
- name: Dump failure logs | ||
if: ${{ failure() && steps.build.conclusion == 'failure' }} | ||
run: | | ||
echo '### Failure logs' | tee -a "${GITHUB_STEP_SUMMARY}" | ||
cd .build || exit 1 | ||
for log in failed.log.*; do | ||
pretty_logname="$(echo "${log}" | sed "s/^failed\.log\.[0-9]\+\.// ; s/\.${KEYMAP}$//")" | ||
printf '\n::group::%s\n%s\n::endgroup::\n' "${pretty_logname}" "$(sed "${REGEX_MAKE_OUTPUT}" < "${log}")" | ||
printf '\n<details>\n<summary>%s</summary>\n\n```\n%s\n```\n\n</details>\n' \ | ||
"${pretty_logname}" "$(sed "${REGEX_MAKE_OUTPUT} ; ${REGEX_ANSI_COLOR}" < "${log}")" >> "${GITHUB_STEP_SUMMARY}" | ||
done |