name: CI on: [ pull_request, push, workflow_dispatch ] concurrency: group: ${{ github.workflow }}-${{ 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: check-uid: name: Check Vial UIDs runs-on: ubuntu-latest steps: - name: (actions) Checkout Vial repo uses: actions/checkout@v3 with: persist-credentials: false - name: Verify Vial UID is unique per-keyboard run: python3 util/ci_vial_verify_uid.py 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
\n%s\n\n```\n%s\n```\n\n
\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) 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
\n%s\n\n```\n%s\n```\n\n
\n' \ "${pretty_logname}" "$(sed "${REGEX_MAKE_OUTPUT} ; ${REGEX_ANSI_COLOR}" < "${log}")" >> "${GITHUB_STEP_SUMMARY}" done