diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7261d12..d74fb89 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,95 +1,5 @@ on: [push, pull_request, workflow_dispatch] -name: Build - jobs: - matrix: - runs-on: ubuntu-latest - name: Fetch Build Keyboards - outputs: - matrix: ${{ steps.set-matrix.outputs.matrix }} - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Install yaml2json - run: python3 -m pip install remarshal - - id: set-matrix - name: Fetch Build Matrix - run: | - matrix=$(yaml2json build.yaml | jq -c .) - yaml2json build.yaml - echo "matrix=${matrix}" >> $GITHUB_OUTPUT build: - runs-on: ubuntu-latest - container: - image: zmkfirmware/zmk-build-arm:stable - needs: matrix - name: Build - strategy: - fail-fast: false - matrix: ${{fromJson(needs.matrix.outputs.matrix)}} - steps: - - name: Prepare variables - id: variables - run: | - if [ -n "${{ matrix.shield }}" ]; then - EXTRA_CMAKE_ARGS="-DSHIELD=${{ matrix.shield }}" - ARTIFACT_NAME="${{ matrix.shield }}-${{ matrix.board }}-zmk" - DISPLAY_NAME="${{ matrix.shield }} - ${{ matrix.board }}" - else - EXTRA_CMAKE_ARGS= - DISPLAY_NAME="${{ matrix.board }}" - ARTIFACT_NAME="${{ matrix.board }}-zmk" - fi - echo "extra-cmake-args=${EXTRA_CMAKE_ARGS}" >> $GITHUB_OUTPUT - echo "artifact-name=${ARTIFACT_NAME}" >> $GITHUB_OUTPUT - echo "display-name=${DISPLAY_NAME}" >> $GITHUB_OUTPUT - - name: Checkout - uses: actions/checkout@v3 - - name: Cache west modules - uses: actions/cache@v3 - env: - cache-name: cache-zephyr-modules - with: - path: | - modules/ - tools/ - zephyr/ - bootloader/ - zmk/ - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('manifest-dir/west.yml') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - name: West Init - run: west init -l config - - name: West Update - run: west update - - name: West Zephyr export - run: west zephyr-export - - name: West Build (${{ steps.variables.outputs.display-name }}) - run: | - west build -s zmk/app -b ${{ matrix.board }} -- -DZMK_CONFIG=${GITHUB_WORKSPACE}/config ${{ steps.variables.outputs.extra-cmake-args }} ${{ matrix.cmake-args }} - - name: ${{ steps.variables.outputs.display-name }} DTS File - if: ${{ always() }} - run: | - if [ -f "build/zephyr/${{ matrix.board }}.dts.pre.tmp" ]; then cat -n build/zephyr/${{ matrix.board }}.dts.pre.tmp; fi - if [ -f "build/zephyr/zephyr.dts" ]; then cat -n build/zephyr/zephyr.dts; fi - - name: ${{ steps.variables.outputs.display-name }} Kconfig file - run: cat build/zephyr/.config | grep -v "^#" | grep -v "^$" - - name: Rename artifacts - run: | - mkdir build/artifacts - if [ -f build/zephyr/zmk.uf2 ] - then - cp build/zephyr/zmk.uf2 "build/artifacts/${{ steps.variables.outputs.artifact-name }}.uf2" - elif [ -f build/zephyr/zmk.hex ] - then - cp build/zephyr/zmk.hex "build/artifacts/${{ steps.variables.outputs.artifact-name }}.hex" - fi - - name: Archive (${{ steps.variables.outputs.display-name }}) - uses: actions/upload-artifact@v3 - with: - name: firmware - path: build/artifacts + uses: zmkfirmware/zmk/.github/workflows/build-user-config.yml@main