diff --git a/.github/workflows/build-ahokore-all.yml b/.github/workflows/build-ahokore-all.yml new file mode 100644 index 0000000..fc2b96e --- /dev/null +++ b/.github/workflows/build-ahokore-all.yml @@ -0,0 +1,108 @@ +name: 'Build ahokore with all options' +on: + - workflow_dispatch +jobs: + build: + runs-on: ubuntu-latest + container: + image: zmkfirmware/zmk-build-arm:2.4 + strategy: + fail-fast: false + matrix: + shield: + - "" + board: + - ahokore + alphas: + - "" + # - colemak + # - colemakdhk + # - dvorak + # - halmak + # - workman + # - qwerty + nav: + - "" + # - vi + clipboard: + - "" + # - fun + # - mac + # - win + layers: + - "" + mapping: + - "" + steps: + - name: Checkout + uses: actions/checkout@v2 + - name: Cache west modules + uses: actions/cache@v2 + env: + cache-name: cache-zephyr-modules + with: + path: | + bootloader/ + modules/ + tools/ + zephyr/ + zmk/ + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('config/west-ahokore.yml') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + timeout-minutes: 2 + continue-on-error: true + - name: Initialize workspace (west init) + run: west init -l config --mf west-ahokore.yml + - name: Update modules (west update) + run: west update + - name: Export Zephyr CMake package (west zephyr-export) + run: west zephyr-export + - name: Process matrix + id: variables + run: | + if [ -n "${{ matrix.shield }}" ] + then + SHIELD_ARG="-DSHIELD=${{ matrix.shield }}" + fi + echo "::set-output name=shield-arg::${SHIELD_ARG}" + configfile="${GITHUB_WORKSPACE}/miryoku/config.h" + echo '// https://github.com/manna-harbour/miryoku-zmk/' > "$configfile" + echo "::set-output name=configfile::$configfile" + artifact_build_name="miryoku_zmk ${{ matrix.shield }} ${{ matrix.board }}" + for option in "alphas_${{ matrix.alphas }}" "nav_${{ matrix.nav }}" "clipboard_${{ matrix.clipboard }}" "layers_${{ matrix.layers }}" "mapping_${{ matrix.mapping }}" + do + case "$option" in + *_ ) ;; + * ) + artifact_build_name="$artifact_build_name $option" + echo "#define MIRYOKU_"`echo "$option" | tr 'a-z' 'A-Z'` >> "$configfile" + ;; + esac + done + artifact_build_name=`echo $artifact_build_name | tr ' ' '-'` + echo "::set-output name=artifact-build-name::$artifact_build_name" + echo "::set-output name=artifact-generic-name::$artifact_build_name" + echo "::set-output name=artifact-dir::artifacts" + - name: Build (west build) + run: west build -s zmk/app -b ${{ matrix.board }} -- ${{ steps.variables.outputs.shield-arg }} -DZMK_CONFIG="${GITHUB_WORKSPACE}/config" + - name: Prepare artifacts + run: | + mkdir ${{ steps.variables.outputs.artifact-dir }} + cp "${{ steps.variables.outputs.configfile }}" "${{ steps.variables.outputs.artifact-dir }}" + for extension in "hex" "uf2" + do + file="build/zephyr/zmk.$extension" + if [ -f "$file" ] + then + cp "$file" "${{ steps.variables.outputs.artifact-dir }}/${{ steps.variables.outputs.artifact-build-name }}.$extension" + fi + done + - name: Archive artifacts + uses: actions/upload-artifact@v2 + with: + name: ${{ steps.variables.outputs.artifact-generic-name }} + path: ${{ steps.variables.outputs.artifact-dir }} + continue-on-error: true diff --git a/config/west-ahokore.yml b/config/west-ahokore.yml new file mode 100644 index 0000000..a45cc91 --- /dev/null +++ b/config/west-ahokore.yml @@ -0,0 +1,13 @@ +manifest: + remotes: + - name: zmkfirmware + url-base: https://github.com/zmkfirmware + - name: dezlidezlidezli + url-base: https://github.com/dezlidezlidezli + projects: + - name: zmk + remote: dezlidezlidezli + revision: ahokorev2 + import: app/west.yml + self: + path: config