Regen master kaitai-io/kaitai_struct@242a2a164566d27142999e63d533e9f3… #356
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: {} | |
| jobs: | |
| windows: | |
| runs-on: windows-latest | |
| # NB: see https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md for what's available in this image | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| tsv: | |
| # - target: cpp_stl | |
| # subtarget: _98 | |
| # implementation: msvc142 | |
| # - target: cpp_stl | |
| # subtarget: _11 | |
| # implementation: msvc142 | |
| - target: csharp | |
| implementation: net48 | |
| env: | |
| TARGET: ${{matrix.tsv.target}} | |
| SUBTARGET: ${{matrix.tsv.subtarget}} | |
| IMPL: ${{matrix.tsv.implementation}} | |
| steps: | |
| - name: Dump matrix context | |
| env: | |
| MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
| run: echo "$MATRIX_CONTEXT" | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: 'true' | |
| - name: install rsync | |
| run: choco install rsync --no-progress | |
| - name: check rsync version | |
| run: rsync --version | |
| - uses: microsoft/setup-msbuild@v2 | |
| - name: prepare | |
| run: | | |
| git clone --depth 1 https://github.com/kaitai-io/kaitai_struct_tests tests | |
| git -C tests rev-parse HEAD | |
| cp -r compiled tests/compiled | |
| ./prepare-$TARGET | |
| shell: bash | |
| - name: GitHub Actions job_id parser | |
| uses: Tiryoh/gha-jobid-action@v1 | |
| id: job_info | |
| with: | |
| job_name: "${{github.job}} (${{matrix.tsv.target}}${{ format('{0}', matrix.tsv.subtarget) != '' && format(', {0}', matrix.tsv.subtarget) || '' }}, ${{matrix.tsv.implementation}})" | |
| # This is needed if there are more than 30 jobs in the workflow run, | |
| # see https://github.com/Tiryoh/gha-jobid-action/issues/1 | |
| per_page: 100 | |
| - name: run | |
| env: | |
| GH_JOB_ID: ${{steps.job_info.outputs.job_id}} | |
| GH_HTML_URL: ${{steps.job_info.outputs.html_url}} | |
| working-directory: tests | |
| run: ./ci-$TARGET$SUBTARGET | |
| shell: bash | |
| - name: publish | |
| env: | |
| BOT_SSH_KEY: ${{secrets.BOT_SSH_KEY}} | |
| run: | | |
| ./push_artifacts/git_config_kaitai_bot | |
| ./push_artifacts/publish \ | |
| -o kaitai-io \ | |
| -r ci_artifacts \ | |
| -m "Build results of ${GITHUB_REF#refs/heads/*} kaitai-io/ci_targets@$GITHUB_SHA" \ | |
| -b "${TARGET}${SUBTARGET}"/"$IMPL-windows-x64" \ | |
| -- --exclude=.git --exclude=.travis.yml tests/test_out | |
| shell: bash | |
| macos: | |
| runs-on: macos-15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| tsv: | |
| - target: cpp_stl | |
| subtarget: _98 | |
| implementation: clang16 | |
| - target: cpp_stl | |
| subtarget: _11 | |
| implementation: clang16 | |
| env: | |
| TARGET: ${{matrix.tsv.target}} | |
| SUBTARGET: ${{matrix.tsv.subtarget}} | |
| IMPL: ${{matrix.tsv.implementation}} | |
| steps: | |
| - name: Dump matrix context | |
| env: | |
| MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
| run: echo "$MATRIX_CONTEXT" | |
| - name: Validate Clang version | |
| run: | | |
| ver=$(c++ --version) || exit 1 | |
| echo "$ver" | grep -q 'clang version 16\.' | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: 'true' | |
| - name: prepare | |
| run: | | |
| git clone --depth 1 https://github.com/kaitai-io/kaitai_struct_tests tests | |
| git -C tests rev-parse HEAD | |
| ln -s ../compiled tests/compiled | |
| ./prepare-$TARGET | |
| - name: GitHub Actions job_id parser | |
| uses: Tiryoh/gha-jobid-action@v1 | |
| id: job_info | |
| with: | |
| job_name: "${{github.job}} (${{matrix.tsv.target}}, ${{matrix.tsv.subtarget}}, ${{matrix.tsv.implementation}})" | |
| # This is needed if there are more than 30 jobs in the workflow run, | |
| # see https://github.com/Tiryoh/gha-jobid-action/issues/1 | |
| per_page: 100 | |
| - name: run | |
| env: | |
| GH_JOB_ID: ${{steps.job_info.outputs.job_id}} | |
| GH_HTML_URL: ${{steps.job_info.outputs.html_url}} | |
| working-directory: tests | |
| run: ./ci-$TARGET$SUBTARGET | |
| - name: compare | |
| working-directory: tests | |
| run: | | |
| echo '# Comparison with previous' | |
| echo | |
| PREV_REPORT= | |
| if ./report-download-github "$TARGET" "$SUBTARGET" "$IMPL" macos x86_64; then | |
| PREV_REPORT="ci_results/$TARGET$SUBTARGET/$IMPL-macos-x86_64/ci.json" | |
| fi | |
| aggregate/compare_with_prev \ | |
| "$PREV_REPORT" \ | |
| "test_out/$TARGET$SUBTARGET/ci.json" | |
| - name: publish | |
| env: | |
| BOT_SSH_KEY: ${{secrets.BOT_SSH_KEY}} | |
| run: | | |
| ./push_artifacts/git_config_kaitai_bot | |
| ./push_artifacts/publish \ | |
| -o kaitai-io \ | |
| -r ci_artifacts \ | |
| -m "Build results of ${GITHUB_REF#refs/heads/*} kaitai-io/ci_targets@$GITHUB_SHA" \ | |
| -b "${TARGET}${SUBTARGET}"/"$IMPL-macos-x86_64" \ | |
| -- --exclude=.git --exclude=.travis.yml tests/test_out | |
| docker: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| tsv: | |
| - target: construct | |
| implementation: python3.6 | |
| - target: construct | |
| implementation: python3.13 | |
| - target: cpp_stl | |
| subtarget: _98 | |
| implementation: clang3.4 | |
| - target: cpp_stl | |
| subtarget: _11 | |
| implementation: clang3.4 | |
| - target: cpp_stl | |
| subtarget: _98 | |
| implementation: clang18 | |
| - target: cpp_stl | |
| subtarget: _11 | |
| implementation: clang18 | |
| - target: cpp_stl | |
| subtarget: _98 | |
| implementation: gcc4.8 | |
| - target: cpp_stl | |
| subtarget: _11 | |
| implementation: gcc4.8 | |
| - target: cpp_stl | |
| subtarget: _98 | |
| implementation: gcc13 | |
| - target: cpp_stl | |
| subtarget: _11 | |
| implementation: gcc13 | |
| - target: csharp | |
| implementation: net6.0 | |
| - target: csharp | |
| implementation: net9.0 | |
| - target: go | |
| implementation: '1.25' | |
| - target: graphviz | |
| implementation: '12' | |
| - target: java | |
| implementation: zulu7 | |
| - target: java | |
| implementation: temurin8 | |
| - target: java | |
| implementation: temurin11 | |
| - target: java | |
| implementation: temurin17 | |
| - target: java | |
| implementation: temurin21 | |
| - target: javascript | |
| implementation: nodejs10 | |
| - target: javascript | |
| implementation: nodejs12 | |
| - target: javascript | |
| implementation: nodejs18 | |
| - target: javascript | |
| implementation: nodejs24 | |
| # - target: julia | |
| # implementation: '1.9' | |
| - target: lua | |
| implementation: '5.3' | |
| - target: lua | |
| implementation: '5.4' | |
| - target: nim | |
| implementation: '1.6.20' | |
| - target: nim | |
| implementation: '2.2.4' | |
| - target: perl | |
| implementation: '5.30' | |
| - target: perl | |
| implementation: '5.42' | |
| - target: php | |
| implementation: '7.1' | |
| - target: php | |
| implementation: '8.4' | |
| - target: python | |
| implementation: '2.7' | |
| - target: python | |
| implementation: '3.4' | |
| - target: python | |
| implementation: '3.13' | |
| - target: ruby | |
| implementation: '1.9' | |
| - target: ruby | |
| implementation: '2.3' | |
| - target: ruby | |
| implementation: '3.4' | |
| - target: rust | |
| implementation: '1.89' | |
| env: | |
| TARGET: ${{matrix.tsv.target}} | |
| SUBTARGET: ${{matrix.tsv.subtarget}} | |
| IMPL: ${{matrix.tsv.implementation}} | |
| steps: | |
| - name: Dump matrix context | |
| env: | |
| MATRIX_CONTEXT: ${{ toJson(matrix) }} | |
| run: echo "$MATRIX_CONTEXT" | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: 'true' | |
| - name: docker pull | |
| run: | | |
| docker pull ghcr.io/kaitai-io/kaitai-"$TARGET"-"$IMPL"-linux-x86_64 | |
| - name: download tests | |
| run: | | |
| git clone --depth 1 https://github.com/kaitai-io/kaitai_struct_tests tests | |
| git -C tests rev-parse HEAD | |
| cp -r compiled tests/compiled | |
| - name: download runtime | |
| run: | | |
| mkdir -p runtime | |
| git clone --depth 1 --recurse-submodules https://github.com/kaitai-io/kaitai_struct_${TARGET}_runtime runtime/$TARGET | |
| git -C runtime/$TARGET rev-parse HEAD | |
| if: matrix.tsv.target != 'construct' && matrix.tsv.target != 'graphviz' | |
| - name: GitHub Actions job_id parser | |
| uses: Tiryoh/gha-jobid-action@v1 | |
| id: job_info | |
| with: | |
| job_name: "${{github.job}} (${{matrix.tsv.target}}${{ format('{0}', matrix.tsv.subtarget) != '' && format(', {0}', matrix.tsv.subtarget) || '' }}, ${{matrix.tsv.implementation}})" | |
| # This is needed if there are more than 30 jobs in the workflow run, | |
| # see https://github.com/Tiryoh/gha-jobid-action/issues/1 | |
| per_page: 100 | |
| - name: run | |
| env: | |
| GH_JOB_ID: ${{steps.job_info.outputs.job_id}} | |
| GH_HTML_URL: ${{steps.job_info.outputs.html_url}} | |
| working-directory: tests | |
| run: ./docker-ci -t "$TARGET" -u "$SUBTARGET" -i "$IMPL" | |
| # - name: publish as artifact | |
| # uses: actions/upload-artifact@v3 | |
| # with: | |
| # name: test-${{matrix.tsv.target}}${{matrix.tsv.subtarget}}-${{matrix.tsv.implementation}} | |
| # path: tests/test_out | |
| - name: publish | |
| env: | |
| BOT_SSH_KEY: ${{secrets.BOT_SSH_KEY}} | |
| run: | | |
| ./push_artifacts/git_config_kaitai_bot | |
| ./push_artifacts/publish \ | |
| -o kaitai-io \ | |
| -r ci_artifacts \ | |
| -m "Build results of ${GITHUB_REF#refs/heads/*} kaitai-io/ci_targets@$GITHUB_SHA" \ | |
| -b "${TARGET}${SUBTARGET}"/"$IMPL-linux-x86_64" \ | |
| -- --exclude=.git --exclude=.travis.yml tests/test_out |