|
| 1 | +!yamlscript/v0 |
| 2 | + |
| 3 | +matrix =:: |
| 4 | +- {arch: aarch64 , tc: aarch64-linux-gnu} # this is armv8 |
| 5 | +- {arch: armv7 , tc: arm-linux-gnueabihf, flags: -march=armv7+fp} |
| 6 | +- {arch: armv6 , tc: arm-linux-gnueabi, flags: -march=armv6+fp} |
| 7 | +- {arch: armv5 , tc: arm-linux-gnueabi, flags: -march=armv5te+fp} |
| 8 | +- {arch: armv4 , tc: arm-linux-gnueabi, flags: -march=armv4} |
| 9 | +- {arch: loongarch64, tc: loongarch64-linux-gnu, version: -14} |
| 10 | +- {arch: mips , tc: mips-linux-gnu} |
| 11 | +- {arch: mipsel , tc: mipsel-linux-gnu} |
| 12 | +- {arch: mips64 , tc: mips64-linux-gnuabi64} |
| 13 | +- {arch: mips64el , tc: mips64el-linux-gnuabi64} |
| 14 | +- {arch: riscv64 , tc: riscv64-linux-gnu} |
| 15 | +- {arch: s390x , tc: s390x-linux-gnu} |
| 16 | +- {arch: ppc , tc: powerpc-linux-gnu} |
| 17 | +- {arch: ppc64 , tc: powerpc64-linux-gnu} |
| 18 | +- {arch: ppc64le , tc: powerpc64le-linux-gnu} |
| 19 | +- {arch: sparc64 , tc: sparc64-linux-gnu} |
| 20 | +# TODO xtensa! |
| 21 | + |
| 22 | +=>: matrix # this is needed to use +++.$ (the operator containing the last document) |
| 23 | + |
| 24 | + |
| 25 | +--- !yamlscript/v0: |
| 26 | + |
| 27 | +:use common: :all |
| 28 | +:: workflow-setup() |
| 29 | +:: |
| 30 | + defn define-workflow(list-elms):: |
| 31 | + name: ${{matrix.arch}} |
| 32 | + runs-on: ubuntu-24.04 |
| 33 | + strategy: |
| 34 | + fail-fast: false |
| 35 | + matrix: |
| 36 | + include:: list-elms |
| 37 | + steps: |
| 38 | + - :: checkout-action |
| 39 | + - name: install |
| 40 | + run: | |
| 41 | + sudo apt-get update |
| 42 | + sudo apt-get install -y \ |
| 43 | + gcc${{matrix.version}}-${{matrix.tc}} \ |
| 44 | + g++${{matrix.version}}-${{matrix.tc}} \ |
| 45 | + qemu-user-static |
| 46 | + - name: info |
| 47 | + run: | |
| 48 | + ${{matrix.tc}}-g++${{matrix.version}} --version |
| 49 | + ${{matrix.tc}}-g++${{matrix.version}} -dM -E - </dev/null | sort |
| 50 | + ${{matrix.tc}}-g++${{matrix.version}} ${{matrix.flags}} -dM -E - </dev/null | sort |
| 51 | + - :: xcompile-steps("${{matrix.arch}}" "Debug" "11" "${{matrix.flags}}") |
| 52 | + - :: xcompile-steps("${{matrix.arch}}" "Release" "11" "${{matrix.flags}}") |
| 53 | + - :: xcompile-steps("${{matrix.arch}}" "Debug" "20" "${{matrix.flags}}") |
| 54 | + - :: xcompile-steps("${{matrix.arch}}" "Release" "20" "${{matrix.flags}}") |
| 55 | + |
| 56 | + =>: nil # this is needed! |
| 57 | + |
| 58 | +jobs: |
| 59 | + |
| 60 | + canary: |
| 61 | + :: setup-job('embedded' 'canary') + first(matrix):list:define-workflow # could use +++.$ instead |
| 62 | + |
| 63 | + xcompile: |
| 64 | + needs: canary |
| 65 | + :: setup-job('embedded' 'xcompile') + rest(+++.$):define-workflow # requires =>: matrix on the first doc |
0 commit comments