diff --git a/.github/workflows/build.yml b/.github/workflows/build_all_keyboards.yml similarity index 61% rename from .github/workflows/build.yml rename to .github/workflows/build_all_keyboards.yml index d68487d..f1c0a47 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build_all_keyboards.yml @@ -1,7 +1,5 @@ -name: Build +name: 'Build all keyboards' on: - - push - - pull_request - workflow_dispatch jobs: build: @@ -12,56 +10,30 @@ jobs: fail-fast: false matrix: shield: - -# - bfo9000_left -# - bfo9000_right - - corne_left - corne_right - - cradio_left - cradio_right - -# - cradio36_left -# - cradio36_right - -# - cradios_left -# - cradios_right - -# - cradioz_left -# - cradioz_right - - crbn - - eek - - helix_left - helix_right - - iris_left - iris_right - - jian_left - jian_right - - jorne_left - jorne_right - - kyria_left - kyria_right - - lily58_left - lily58_right - - microdox_left - microdox_right - - sofle_left - sofle_right - - splitreus62_left - splitreus62_right - board: - nice_nano alphas: [""] @@ -69,24 +41,8 @@ jobs: clipboard: [""] layers: [""] mapping: [""] - include: - -# - shield: absolem -# board: - -# - board: ahokore - -# - board: ferris - - board: planck_rev6 - - - shield: corne_left - board: nice_nano - alphas: qwerty - nav: vi - clipboard: win - steps: - name: Checkout uses: actions/checkout@v2 @@ -125,56 +81,39 @@ jobs: configfile="${GITHUB_WORKSPACE}/miryoku/config.h" echo "::set-output name=configfile::$configfile" - add_config() - { - echo "#define MIRYOKU_"`echo "$1" | tr 'a-z' 'A-Z'` >> "$configfile" - } - if [ -n "${{ matrix.alphas }}" ] - then - alphas="alphas_${{ matrix.alphas }}" - add_config "$alphas" - fi - if [ -n "${{ matrix.nav }}" ] - then - nav="nav_${{ matrix.nav }}" - add_config "$nav" - fi - if [ -n "${{ matrix.clipboard }}" ] - then - clipboard="clipboard_${{ matrix.clipboard }}" - add_config "$clipboard" - fi - if [ -n "${{ matrix.layers }}" ] - then - layers="layers_${{ matrix.layers }}" - add_config "$layers" - fi - if [ -n "${{ matrix.mapping }}" ] - then - mapping="mapping_${{ matrix.mapping }}" - add_config "$mapping" - fi - artifact_build_name=`echo miryoku-zmk ${{ matrix.shield }} ${{ matrix.board }} $alphas $nav $clipboard $layers $mapping | tr ' ' '-'` + + 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::"`echo "$artifact_build_name" | sed 's/_\(left\|right\)//'` - echo "::set-output name=tmpdir::artifacts" + 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.tmpdir }} - cp "${{ steps.variables.outputs.configfile }}" "${{ steps.variables.outputs.tmpdir }}" + 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.tmpdir }}/${{ steps.variables.outputs.artifact-build-name }}.$extension" + 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.tmpdir }} + path: ${{ steps.variables.outputs.artifact-dir }} continue-on-error: true diff --git a/.github/workflows/build_corne.yml b/.github/workflows/build_corne.yml new file mode 100644 index 0000000..c7d9fb6 --- /dev/null +++ b/.github/workflows/build_corne.yml @@ -0,0 +1,97 @@ +name: 'Build corne' +on: + - push + - pull_request + - workflow_dispatch +jobs: + build: + runs-on: ubuntu-latest + container: + image: zmkfirmware/zmk-build-arm:2.4 + strategy: + fail-fast: false + matrix: + shield: + - corne_left + - corne_right + board: + - nice_nano + alphas: [""] + nav: [""] + clipboard: [""] + 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.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 + - 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 "::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::"`echo "$artifact_build_name" | sed 's/_\(left\|right\)//'` + 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/.github/workflows/build_corne_left_with_all_options.yml b/.github/workflows/build_corne_left_with_all_options.yml new file mode 100644 index 0000000..9a17d61 --- /dev/null +++ b/.github/workflows/build_corne_left_with_all_options.yml @@ -0,0 +1,109 @@ +name: 'Build corne_left 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: + - corne_left + board: + - nice_nano + 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.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 + - 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 "::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::"`echo "$artifact_build_name" | sed 's/_\(left\|right\)//'` + 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