Bump actions/setup-python from 6 to 7 #1310
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: | |
| pull_request: | |
| merge_group: | |
| workflow_dispatch: | |
| permissions: {} | |
| concurrency: | |
| group: ${{ github.actor }}-${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| c-build-library: | |
| name: 🏗️ Build C library | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| #- {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}} # setup-cpp fails | |
| - {host: ubuntu-latest, container: {image: "ubuntu:20.04", volumes: ["/tmp:/__e/node20"]}} | |
| - {host: ubuntu-latest, container: {image: "ubuntu:25.04", volumes: ["/tmp:/__e/node20"]}} | |
| - {host: ubuntu-24.04-arm, container: {image: "node:20.18.1-bullseye" }} | |
| - {host: ubuntu-22.04} | |
| - {host: ubuntu-24.04} | |
| - {host: ubuntu-22.04-arm} | |
| - {host: ubuntu-24.04-arm} | |
| - {host: macos-14} | |
| - {host: macos-15} | |
| - {host: macos-26} | |
| - {host: windows-2022} | |
| - {host: windows-2025} | |
| compiler: | |
| - gcc-13 | |
| - gcc-14 | |
| - llvm-19 | |
| - llvm-20 | |
| exclude: | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}}, compiler: gcc-14} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}}, compiler: llvm-19} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}}, compiler: llvm-20} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:20.04", volumes: ["/tmp:/__e/node20"]}}, compiler: gcc-14} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-24.04-arm, container: {image: "node:20.18.1-bullseye" }}, compiler: gcc-13} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-24.04-arm, container: {image: "node:20.18.1-bullseye" }}, compiler: gcc-14} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-22.04}, compiler: gcc-14} # Cannot be installed. | |
| - {platform: {host: ubuntu-22.04-arm}, compiler: gcc-14} # Cannot be installed. | |
| - {platform: {host: macos-14}, compiler: gcc-13} # Known issue with gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90835) | |
| - {platform: {host: macos-15}, compiler: gcc-13} # /opt/homebrew/Cellar/gcc@13/13.4.0/lib/gcc/13/gcc/aarch64-apple-darwin24/13/include-fixed/_stdio.h:78:10: fatal error: _bounds.h: No such file or directory | |
| - {platform: {host: macos-15}, compiler: gcc-14} # Known issue (https://github.com/munich-quantum-toolkit/core/issues/979, https://stackoverflow.com/questions/79641443/c-bounds-h-not-found-after-upgrading-to-gcc-15) | |
| - {platform: {host: macos-26}, compiler: gcc-13} # Incompatible it seems | |
| - {platform: {host: macos-26}, compiler: gcc-14} # Incompatible it seems | |
| - {platform: {host: windows-2022}, compiler: llvm-19} # libgit2 does not seem to support this | |
| - {platform: {host: windows-2025}, compiler: llvm-19} # libgit2 does not seem to support this | |
| include: | |
| - {platform: {host: macos-14}, compiler: apple-clang} | |
| - {platform: {host: macos-15}, compiler: apple-clang} | |
| - {platform: {host: macos-26}, compiler: apple-clang} | |
| - {platform: {host: windows-2022}, compiler: msvc} | |
| - {platform: {host: windows-2025}, compiler: msvc} | |
| - {platform: {host: windows-11-arm}, compiler: msvc} | |
| runs-on: ${{ matrix.platform.host }} | |
| container: ${{ matrix.platform.container }} | |
| steps: | |
| - name: Install node.js for GitHub Actions # https://github.com/actions/checkout/issues/1474#issuecomment-2604308106 | |
| if: matrix.platform.container != null && matrix.platform.container.volumes != null | |
| run: | | |
| apt-get update && | |
| apt-get install -y curl ca-certificates && | |
| # Install a Node.js version that works in older Ubuntu containers (read: does not require very recent glibc) | |
| NODE_VERSION=v20.18.1 && | |
| NODE_TAR_FILE=node-$NODE_VERSION-linux-x64-glibc-217.tar.gz && | |
| NODE_URL=https://unofficial-builds.nodejs.org/download/release/$NODE_VERSION/$NODE_TAR_FILE && | |
| curl -Lo /tmp/$NODE_TAR_FILE $NODE_URL && | |
| tar -C /__e/node20 -x --strip-components=1 -f /tmp/$NODE_TAR_FILE | |
| - name: 🧰 Install compiler | |
| uses: aminya/setup-cpp@v1 | |
| with: | |
| compiler: ${{ matrix.compiler }} | |
| vcvarsall: ${{ contains(matrix.platform.host, 'windows' )}} | |
| cmake: true | |
| ninja: true | |
| cppcheck: true | |
| gcovr: false | |
| opencppcoverage: false | |
| git: true | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v4 | |
| - name: 📥 Fetch tags | |
| continue-on-error: true | |
| run: | | |
| git config --global safe.directory '*' | |
| git fetch --prune --unshallow --tags | |
| working-directory: ${{github.workspace}} | |
| - name: 🔧 Configure CMake | |
| run: cmake -S c/ -B c/build/ ${{ (matrix.compiler != 'msvc') && '-G "Ninja Multi-Config"' || ''}} --preset=conf-release-full-shared-lib-static-deps | |
| - name: 🏗️ Build library | |
| run: cmake --build c/build/ --config Release --target tirex_tracker -j 16 | |
| - name: 📤 Upload Linux x86_64 library | |
| if: matrix.platform.host == 'ubuntu-latest' && matrix.platform.container.image == 'ubuntu:20.04' && matrix.compiler == 'llvm-19' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-library-linux-x86_64 | |
| if-no-files-found: error | |
| path: c/build/src/Release/libtirex_tracker.so | |
| - name: 📤 Upload Linux aarch64 library | |
| if: matrix.platform.host == 'ubuntu-22.04-arm' && matrix.compiler == 'llvm-20' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-library-linux-aarch64 | |
| if-no-files-found: error | |
| path: c/build/src/Release/libtirex_tracker.so | |
| - name: 📤 Upload macOS aarch64 library | |
| if: matrix.platform.host == 'macos-14' && matrix.compiler == 'apple-clang' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-library-macos-aarch64 | |
| if-no-files-found: error | |
| path: c/build/src/Release/libtirex_tracker.dylib | |
| - name: 📤 Upload Windows x86_64 library | |
| if: matrix.platform.host == 'windows-2022' && matrix.compiler == 'msvc' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-library-windows-x86_64 | |
| if-no-files-found: error | |
| path: c/build/src/Release/tirex_tracker.dll | |
| - name: 📤 Upload Windows aarch64 library | |
| if: matrix.platform.host == 'windows-11-arm' && matrix.compiler == 'msvc' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-library-windows-aarch64 | |
| if-no-files-found: error | |
| path: c/build/src/Release/tirex_tracker.dll | |
| c-check-format: | |
| name: 🔍 Check C code format | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - name: 🧰 Install compiler | |
| uses: aminya/setup-cpp@v1 | |
| with: | |
| clang-format: "19.1.0" | |
| clangtidy: true | |
| setup-cpp: false | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🔍 Check Codestyle | |
| working-directory: ${{github.workspace}}/c/ | |
| run: find src/ include/ -type f -iregex '^.*\.\(c\|h\|cpp\|hpp\|cc\|hh\)$' | xargs clang-format-19 --dry-run --Werror --Wno-error=unknown | |
| c-build-cli: | |
| name: 🏗️ Build C CLI | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: | |
| # - {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}} # setup-cpp fails | |
| - {host: ubuntu-latest, container: {image: "ubuntu:20.04", volumes: ["/tmp:/__e/node20"]}} | |
| - {host: ubuntu-latest, container: {image: "ubuntu:25.04", volumes: ["/tmp:/__e/node20"]}} | |
| - {host: ubuntu-24.04-arm, container: {image: "node:20.18.1-bullseye" }} | |
| - {host: ubuntu-22.04} | |
| - {host: ubuntu-24.04} | |
| - {host: ubuntu-22.04-arm} | |
| - {host: ubuntu-24.04-arm} | |
| - {host: macos-14} | |
| - {host: macos-15} | |
| - {host: macos-26} | |
| - {host: windows-2022} | |
| - {host: windows-2025} | |
| compiler: | |
| - gcc-13 | |
| - gcc-14 | |
| - llvm-19 | |
| - llvm-20 | |
| exclude: | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}}, compiler: gcc-14} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}}, compiler: llvm-19} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:18.04", volumes: ["/tmp:/__e/node20"]}}, compiler: llvm-20} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-latest, container: {image: "ubuntu:20.04", volumes: ["/tmp:/__e/node20"]}}, compiler: gcc-14} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-24.04-arm, container: {image: "node:20.18.1-bullseye" }}, compiler: gcc-13} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-24.04-arm, container: {image: "node:20.18.1-bullseye" }}, compiler: gcc-14} # setup-cpp compiler setup fails | |
| - {platform: {host: ubuntu-22.04}, compiler: gcc-14} # Cannot be installed. | |
| - {platform: {host: ubuntu-22.04-arm}, compiler: gcc-14} # Cannot be installed. | |
| - {platform: {host: macos-14}, compiler: gcc-13} # Known issue with gcc (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90835) | |
| - {platform: {host: macos-15}, compiler: gcc-13} # /opt/homebrew/Cellar/gcc@13/13.4.0/lib/gcc/13/gcc/aarch64-apple-darwin24/13/include-fixed/_stdio.h:78:10: fatal error: _bounds.h: No such file or directory | |
| - {platform: {host: macos-15}, compiler: gcc-14} # Known issue (https://github.com/munich-quantum-toolkit/core/issues/979, https://stackoverflow.com/questions/79641443/c-bounds-h-not-found-after-upgrading-to-gcc-15) | |
| - {platform: {host: macos-26}, compiler: gcc-13} # Incompatible it seems | |
| - {platform: {host: macos-26}, compiler: gcc-14} # Incompatible it seems | |
| - {platform: {host: windows-2022}, compiler: llvm-19} # libgit2 does not seem to support this | |
| - {platform: {host: windows-2025}, compiler: llvm-19} # libgit2 does not seem to support this | |
| include: | |
| - {platform: {host: macos-14}, compiler: apple-clang} | |
| - {platform: {host: macos-15}, compiler: apple-clang} | |
| - {platform: {host: macos-26}, compiler: apple-clang} | |
| - {platform: {host: windows-2022}, compiler: msvc} | |
| - {platform: {host: windows-2025}, compiler: msvc} | |
| - {platform: {host: windows-11-arm}, compiler: msvc} | |
| runs-on: ${{ matrix.platform.host }} | |
| container: ${{ matrix.platform.container }} | |
| steps: | |
| - name: Install node.js for GitHub Actions # https://github.com/actions/checkout/issues/1474#issuecomment-2604308106 | |
| if: matrix.platform.container != null && matrix.platform.container.volumes != null | |
| run: | | |
| apt-get update && | |
| apt-get install -y curl ca-certificates && | |
| # Install a Node.js version that works in older Ubuntu containers (read: does not require very recent glibc) | |
| NODE_VERSION=v20.18.1 && | |
| NODE_TAR_FILE=node-$NODE_VERSION-linux-x64-glibc-217.tar.gz && | |
| NODE_URL=https://unofficial-builds.nodejs.org/download/release/$NODE_VERSION/$NODE_TAR_FILE && | |
| curl -Lo /tmp/$NODE_TAR_FILE $NODE_URL && | |
| tar -C /__e/node20 -x --strip-components=1 -f /tmp/$NODE_TAR_FILE | |
| - name: 🧰 Install compiler | |
| uses: aminya/setup-cpp@v1 | |
| with: | |
| compiler: ${{ matrix.compiler }} | |
| vcvarsall: ${{ contains(matrix.platform.host, 'windows' )}} | |
| cmake: true | |
| ninja: true | |
| cppcheck: true | |
| gcovr: false | |
| opencppcoverage: false | |
| git: true | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v4 | |
| - name: 📥 Fetch tags | |
| continue-on-error: true | |
| run: | | |
| git config --global safe.directory '*' | |
| git fetch --prune --unshallow --tags | |
| working-directory: ${{github.workspace}} | |
| - name: 🔧 Configure CMake | |
| run: | | |
| cmake -S c/ -B c/build/ ${{ (matrix.compiler != 'msvc') && '-G "Ninja Multi-Config"' || ''}} --preset=conf-release-cli | |
| - name: 🏗️ Build CLI | |
| run: cmake --build c/build/ --config Release --target measure -j 16 | |
| - name: 📤 Upload Linux CLI | |
| if: matrix.platform.host == 'ubuntu-latest' && matrix.platform.container.image == 'ubuntu:20.04' && matrix.compiler == 'llvm-19' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-cli-linux | |
| if-no-files-found: error | |
| path: c/build/examples/03_measure_command/Release/measure | |
| - name: 📤 Upload macOS CLI | |
| if: matrix.platform.host == 'macos-14' && matrix.compiler == 'apple-clang' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-cli-macos | |
| if-no-files-found: error | |
| path: c/build/examples/03_measure_command/Release/measure | |
| - name: 📤 Upload Windows CLI | |
| if: matrix.platform.host == 'windows-2022' && matrix.compiler == 'msvc' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-cli-windows | |
| if-no-files-found: error | |
| path: c/build/examples/03_measure_command/Release/measure.exe | |
| c-build-debian-package: | |
| name: 🏗️ Build Debian package | |
| runs-on: ubuntu-latest | |
| container: | |
| image: ubuntu:20.04 | |
| volumes: | |
| - /tmp:/__e/node20 | |
| steps: | |
| - name: Install node.js for GitHub Actions # https://github.com/actions/checkout/issues/1474#issuecomment-2604308106 | |
| run: | | |
| apt-get update && | |
| apt-get install -y curl ca-certificates && | |
| # Install a Node.js version that works in older Ubuntu containers (read: does not require very recent glibc) | |
| NODE_VERSION=v20.18.1 && | |
| NODE_TAR_FILE=node-$NODE_VERSION-linux-x64-glibc-217.tar.gz && | |
| NODE_URL=https://unofficial-builds.nodejs.org/download/release/$NODE_VERSION/$NODE_TAR_FILE && | |
| curl -Lo /tmp/$NODE_TAR_FILE $NODE_URL && | |
| tar -C /__e/node20 -x --strip-components=1 -f /tmp/$NODE_TAR_FILE | |
| - name: 🧰 Install compiler | |
| uses: aminya/setup-cpp@v1 | |
| with: | |
| compiler: llvm-19 | |
| cmake: true | |
| ninja: true | |
| cppcheck: true | |
| gcovr: false | |
| opencppcoverage: false | |
| git: true | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 📥 Fetch tags | |
| continue-on-error: true | |
| run: | | |
| git config --global safe.directory '*' | |
| git fetch --prune --unshallow --tags | |
| working-directory: ${{github.workspace}} | |
| - name: 🔧 Configure CMake | |
| run: cmake -S c/ -B c/build/ -G "Ninja Multi-Config" -D CMAKE_BUILD_TYPE=Release -D BUILD_SHARED_LIBS=NO -D TIREX_TRACKER_BUILD_DOCS=NO -D TIREX_TRACKER_BUILD_DEB=YES -D TIREX_TRACKER_BUILD_EXAMPLES=NO -DTIREX_TRACKER_EXTENSION_IR=YES | |
| - name: 🏗️ Build Debian package | |
| run: cmake --build c/build/ --config Release --target package -j 16 | |
| - name: 📤 Upload Debian package | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: c-debian-package | |
| if-no-files-found: error | |
| path: c/build/tirex-tracker-*-Linux.deb | |
| c-test: | |
| name: 🧪 Test C/++ code | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| runs-on: | |
| - ubuntu-22.04 | |
| - ubuntu-24.04 | |
| - macos-14 | |
| - macos-15 | |
| # - windows-2022 # re-enable me later together with the python tests; something is wrong currently | |
| # - windows-2025 # re-enable me later together with the python tests; something is wrong currently | |
| runs-on: ${{ matrix.runs-on }} | |
| steps: | |
| - name: 🧰 Install compiler | |
| uses: aminya/setup-cpp@v1 | |
| with: | |
| vcvarsall: ${{ contains(matrix.platform.host, 'windows' )}} | |
| cmake: true | |
| ninja: true | |
| cppcheck: false | |
| gcovr: true | |
| opencppcoverage: false | |
| git: true | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🔧 Configure CMake | |
| run: cmake -S c/ -B c/build/ -G "Ninja Multi-Config" --preset=conf-dev -D TIREX_TRACKER_BUILD_DOCS=NO | |
| - name: 🏗️ Build tests | |
| run: cmake --build c/build/ --target tests -j 16 | |
| - name: 🧪 Test C/++ code | |
| working-directory: ${{github.workspace}}/c/build | |
| run: ctest -C Debug --output-on-failure | |
| jvm-build: | |
| name: 🏗️ Build JVM library | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: # Java LTS versions | |
| - "8" | |
| - "11" | |
| - "17" | |
| - "21" | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install JDK 8 (for compiling) | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: 8 | |
| distribution: temurin | |
| cache: gradle | |
| cache-dependency-path: | | |
| jvm/example/build.gradle.kts | |
| jvm/library/build.gradle.kts | |
| - name: 🧰 Install JDK (for checks) | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: ${{ matrix.java }} | |
| distribution: temurin | |
| cache: gradle | |
| cache-dependency-path: | | |
| jvm/example/build.gradle.kts | |
| jvm/library/build.gradle.kts | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: jvm/library/src/main/resources/linux-x86-64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: jvm/library/src/main/resources/linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: jvm/library/src/main/resources/darwin-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: jvm/library/src/main/resources/win32-x86-64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: jvm/library/src/main/resources/win32-aarch64/ | |
| - name: 🏗️ Build project | |
| run: jvm/gradlew --project-dir jvm/ build | |
| jvm-check: | |
| name: 🧪 Test and check JVM library | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: # Java LTS versions | |
| - "8" | |
| - "11" | |
| - "17" | |
| - "21" | |
| runs-on: | |
| - ubuntu-22.04 | |
| - ubuntu-22.04-arm | |
| # - ubuntu-24.04 # FIXME: Re-enable | |
| # - macos-14 # FIXME: JDK 8 cannot be installed. | |
| # - macos-15 # FIXME: JDK 8 cannot be installed. | |
| # - macos-26 # FIXME: JDK 8 cannot be installed. | |
| - windows-2022 | |
| # - windows-2025 # FIXME: Re-enable | |
| exclude: | |
| - java: "8" # FIXME: Gradle seems to insist on loading Java 17 on Windows, weirdly. | |
| runs-on: windows-2022 | |
| - java: "11" # FIXME: Gradle seems to insist on loading Java 17 on Windows, weirdly. | |
| runs-on: windows-2022 | |
| - java: "17" # FIXME: Linking errors. | |
| runs-on: windows-2022 | |
| - java: "21" # FIXME: Gradle seems to insist on loading Java 17 on Windows, weirdly. | |
| runs-on: windows-2022 | |
| runs-on: ${{ matrix.runs-on }} | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install JDK 8 (for compiling) | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: 8 | |
| distribution: temurin | |
| cache: gradle | |
| cache-dependency-path: | | |
| jvm/example/build.gradle.kts | |
| jvm/library/build.gradle.kts | |
| - name: 🧰 Install JDK (for checks) | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: ${{ matrix.java }} | |
| distribution: temurin | |
| cache: gradle | |
| cache-dependency-path: | | |
| jvm/example/build.gradle.kts | |
| jvm/library/build.gradle.kts | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: jvm/library/src/main/resources/linux-x86-64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: jvm/library/src/main/resources/linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: jvm/library/src/main/resources/darwin-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: jvm/library/src/main/resources/win32-x86-64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: jvm/library/src/main/resources/win32-aarch64/ | |
| - name: 🧪 Test and check with Gradle | |
| run: jvm/gradlew --project-dir jvm/ check | |
| - name: 📤 Upload coverage to Codecov | |
| if: matrix.java == '21' | |
| uses: codecov/codecov-action@v7 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: jvm/library/build/reports/jacoco/test/jacocoTestReport.xml | |
| jvm-publish: | |
| name: 🚀 Publish JVM library | |
| permissions: | |
| packages: write | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: # Java LTS versions | |
| - "8" | |
| - "11" | |
| - "17" | |
| - "21" | |
| if: github.event_name == 'push' && endsWith(github.event.base_ref, 'master') && startsWith(github.ref, 'refs/tags') | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| - jvm-build | |
| - jvm-check | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install JDK 8 (for compiling) | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: 8 | |
| distribution: temurin | |
| cache: gradle | |
| cache-dependency-path: | | |
| jvm/example/build.gradle.kts | |
| jvm/library/build.gradle.kts | |
| - name: 🧰 Install JDK (for checks) | |
| uses: actions/setup-java@v5 | |
| with: | |
| java-version: ${{ matrix.java }} | |
| distribution: temurin | |
| cache: gradle | |
| cache-dependency-path: | | |
| jvm/example/build.gradle.kts | |
| jvm/library/build.gradle.kts | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: jvm/library/src/main/resources/linux-x86-64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: jvm/library/src/main/resources/linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: jvm/library/src/main/resources/darwin-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: jvm/library/src/main/resources/win32-x86-64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: jvm/library/src/main/resources/win32-aarch64/ | |
| - name: 🚀 Publish JVM library to Maven Local | |
| run: jvm/gradlew --project-dir jvm/ publishToMavenLocal | |
| - name: 📤 Upload JVM JAR | |
| if: matrix.java == '21' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: jvm-jar | |
| if-no-files-found: error | |
| path: ~/.m2/repository/io/tira/tirex-tracker/*/tirex-tracker-*.jar | |
| - name: 📤 Upload JVM sources JAR | |
| if: matrix.java == '21' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: jvm-sources-jar | |
| if-no-files-found: error | |
| path: ~/.m2/repository/io/tira/tirex-tracker/*/tirex-tracker-*-sources.jar | |
| - name: 📤 Upload JVM Javadoc JAR | |
| if: matrix.java == '21' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: jvm-javadoc-jar | |
| if-no-files-found: error | |
| path: ~/.m2/repository/io/tira/tirex-tracker/*/tirex-tracker-*-javadoc.jar | |
| - name: 📤 Upload JVM HTML docs JAR | |
| if: matrix.java == '21' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: jvm-html-docs-jar | |
| if-no-files-found: error | |
| path: ~/.m2/repository/io/tira/tirex-tracker/*/tirex-tracker-*-html-docs.jar | |
| - name: 🚀 Publish JVM library to GitHub Packages | |
| if: matrix.java == '21' | |
| env: | |
| GITHUB_USERNAME: ${{ github.actor }} | |
| GITHUB_PASSWORD: ${{ secrets.GITHUB_TOKEN }} | |
| run: jvm/gradlew --project-dir jvm/ publishAllPublicationsToGitHubPackagesRepository | |
| - name: 🚀 Publish JVM library to Maven Central | |
| if: matrix.java == '21' | |
| env: | |
| JRELEASER_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
| JRELEASER_GPG_PUBLIC_KEY: ${{ secrets.GPG_PUBLIC_KEY }} | |
| JRELEASER_GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY }} | |
| JRELEASER_MAVENCENTRAL_USERNAME: ${{ secrets.MAVENCENTRAL_USERNAME }} | |
| JRELEASER_MAVENCENTRAL_PASSWORD: ${{ secrets.MAVENCENTRAL_PASSWORD }} | |
| run: jvm/gradlew --project-dir jvm/ jreleaserDeploy | |
| python-build: | |
| name: 🏗️ Build Python wheels | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - "3.8" | |
| - "3.9" | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: ${{ runner.temp }}/c-library-linux-x86_64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: ${{ runner.temp }}/c-library-linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: ${{ runner.temp }}/c-library-macos-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: ${{ runner.temp }}/c-library-windows-x86_64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: ${{ runner.temp }}/c-library-windows-aarch64/ | |
| - name: 📦 Copy libraries with architecture-specific names | |
| run: | | |
| cp "$RUNNER_TEMP/c-library-linux-x86_64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_x86_64.so | |
| cp "$RUNNER_TEMP/c-library-linux-aarch64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_aarch64.so | |
| cp "$RUNNER_TEMP/c-library-macos-aarch64/libtirex_tracker.dylib" python/tirex_tracker/libtirex_tracker_macos_aarch64.dylib | |
| cp "$RUNNER_TEMP/c-library-windows-x86_64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_x86_64.dll | |
| cp "$RUNNER_TEMP/c-library-windows-aarch64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_aarch64.dll | |
| - name: 🧰 Install dependencies | |
| run: pip install build twine | |
| - name: 🏗️ Build Python wheels | |
| run: python -m build python | |
| env: | |
| SETUPTOOLS_SCM_PRETEND_VERSION_FOR_TIREX_TRACKER: ${{ github.ref_type == 'tag' && github.ref_name || '' }} | |
| - name: 🧪 Check package bundles | |
| run: twine check python/dist/* | |
| - name: 📤 Upload Python wheels | |
| if: matrix.python == '3.13' | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: python-wheels | |
| if-no-files-found: error | |
| path: python/dist/ | |
| python-check: | |
| name: 🔍 Check Python code | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - "3.8" | |
| - "3.9" | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: pip | |
| cache-dependency-path: python/pyproject.toml | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: ${{ runner.temp }}/c-library-linux-x86_64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: ${{ runner.temp }}/c-library-linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: ${{ runner.temp }}/c-library-macos-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: ${{ runner.temp }}/c-library-windows-x86_64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: ${{ runner.temp }}/c-library-windows-aarch64/ | |
| - name: 📦 Copy libraries with architecture-specific names | |
| run: | | |
| cp "$RUNNER_TEMP/c-library-linux-x86_64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_x86_64.so | |
| cp "$RUNNER_TEMP/c-library-linux-aarch64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_aarch64.so | |
| cp "$RUNNER_TEMP/c-library-macos-aarch64/libtirex_tracker.dylib" python/tirex_tracker/libtirex_tracker_macos_aarch64.dylib | |
| cp "$RUNNER_TEMP/c-library-windows-x86_64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_x86_64.dll | |
| cp "$RUNNER_TEMP/c-library-windows-aarch64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_aarch64.dll | |
| - name: 🧰 Install dependencies | |
| run: pip install -e python[tests] | |
| - name: 🔍 Check Python code | |
| run: ruff check python | |
| python-typing: | |
| name: 🔍 Check Python static typing | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - "3.8" | |
| - "3.9" | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: pip | |
| cache-dependency-path: python/pyproject.toml | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: ${{ runner.temp }}/c-library-linux-x86_64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: ${{ runner.temp }}/c-library-linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: ${{ runner.temp }}/c-library-macos-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: ${{ runner.temp }}/c-library-windows-x86_64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: ${{ runner.temp }}/c-library-windows-aarch64/ | |
| - name: 📦 Copy libraries with architecture-specific names | |
| run: | | |
| cp "$RUNNER_TEMP/c-library-linux-x86_64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_x86_64.so | |
| cp "$RUNNER_TEMP/c-library-linux-aarch64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_aarch64.so | |
| cp "$RUNNER_TEMP/c-library-macos-aarch64/libtirex_tracker.dylib" python/tirex_tracker/libtirex_tracker_macos_aarch64.dylib | |
| cp "$RUNNER_TEMP/c-library-windows-x86_64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_x86_64.dll | |
| cp "$RUNNER_TEMP/c-library-windows-aarch64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_aarch64.dll | |
| - name: 🧰 Install dependencies | |
| run: pip install -e python[tests] | |
| - name: 🔍 Check Python static typing | |
| working-directory: ${{github.workspace}}/python | |
| run: mypy . | |
| python-security: | |
| name: 🔍 Check Python code security | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - "3.8" | |
| - "3.9" | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| runs-on: ubuntu-22.04 | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: pip | |
| cache-dependency-path: python/pyproject.toml | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: ${{ runner.temp }}/c-library-linux-x86_64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: ${{ runner.temp }}/c-library-linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: ${{ runner.temp }}/c-library-macos-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: ${{ runner.temp }}/c-library-windows-x86_64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: ${{ runner.temp }}/c-library-windows-aarch64/ | |
| - name: 📦 Copy libraries with architecture-specific names | |
| run: | | |
| cp "$RUNNER_TEMP/c-library-linux-x86_64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_x86_64.so | |
| cp "$RUNNER_TEMP/c-library-linux-aarch64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_aarch64.so | |
| cp "$RUNNER_TEMP/c-library-macos-aarch64/libtirex_tracker.dylib" python/tirex_tracker/libtirex_tracker_macos_aarch64.dylib | |
| cp "$RUNNER_TEMP/c-library-windows-x86_64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_x86_64.dll | |
| cp "$RUNNER_TEMP/c-library-windows-aarch64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_aarch64.dll | |
| - name: 🧰 Install dependencies | |
| run: pip install -e python[tests] | |
| - name: 🔍 Check Python code security | |
| run: bandit -c python/pyproject.toml -r python | |
| python-test: | |
| name: 🧪 Test Python code | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python: | |
| - "3.8" | |
| - "3.9" | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| runs-on: | |
| - ubuntu-22.04 | |
| - ubuntu-22.04-arm | |
| - ubuntu-24.04 | |
| - macos-14 | |
| - macos-15 | |
| # - windows-2022 # FIXME: does not seem to work right now | |
| # - windows-2025 # FIXME: does not seem to work right now | |
| runs-on: ${{ matrix.runs-on }} | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: pip | |
| cache-dependency-path: python/pyproject.toml | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: ${{ runner.temp }}/c-library-linux-x86_64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: ${{ runner.temp }}/c-library-linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: ${{ runner.temp }}/c-library-macos-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: ${{ runner.temp }}/c-library-windows-x86_64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: ${{ runner.temp }}/c-library-windows-aarch64/ | |
| - name: 📦 Copy libraries with architecture-specific names | |
| run: | | |
| cp "$RUNNER_TEMP/c-library-linux-x86_64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_x86_64.so | |
| cp "$RUNNER_TEMP/c-library-linux-aarch64/libtirex_tracker.so" python/tirex_tracker/libtirex_tracker_linux_aarch64.so | |
| cp "$RUNNER_TEMP/c-library-macos-aarch64/libtirex_tracker.dylib" python/tirex_tracker/libtirex_tracker_macos_aarch64.dylib | |
| cp "$RUNNER_TEMP/c-library-windows-x86_64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_x86_64.dll | |
| cp "$RUNNER_TEMP/c-library-windows-aarch64/tirex_tracker.dll" python/tirex_tracker/tirex_tracker_windows_aarch64.dll | |
| - name: 🧰 Install dependencies | |
| run: pip install -e python[tests] | |
| - name: 🧪 Test Python code | |
| run: pytest --cov --cov-report xml python | |
| - name: 📤 Upload coverage to Codecov | |
| if: matrix.python == '3.13' | |
| uses: codecov/codecov-action@v7 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: coverage.xml | |
| python-publish: | |
| name: 🚀 Publish Python wheels | |
| if: github.event_name == 'push' && endsWith(github.event.base_ref, 'master') && startsWith(github.ref, 'refs/tags') | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| - python-build | |
| - python-check | |
| - python-typing | |
| - python-security | |
| - python-test | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| id-token: write | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 📥 Download Python wheels | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: python-wheels | |
| path: dist | |
| - name: 🚀 Publish Python wheels to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| docs-nightly: | |
| name: 📚 Deploy nightly docs | |
| if: github.ref == 'refs/heads/master' || github.event_name == 'workflow_dispatch' | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| cache-dependency-path: docs/requirements.txt | |
| - name: 🧰 Install Doxygen | |
| run: sudo apt-get install -y doxygen | |
| - name: 🧰 Install dependencies | |
| run: pip install -r docs/requirements.txt mike | |
| - name: ⚙️ Configure git | |
| run: | | |
| git config user.name "GitHub Actions" | |
| git config user.email "actions@github.com" | |
| - name: 📚 Deploy nightly docs | |
| run: mike deploy --push --update-aliases nightly | |
| docs-release: | |
| name: 📚 Deploy release docs | |
| if: github.event_name == 'push' && endsWith(github.event.base_ref, 'master') && startsWith(github.ref, 'refs/tags') | |
| needs: | |
| - github-release | |
| runs-on: ubuntu-22.04 | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: 🧰 Install Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.12" | |
| cache: pip | |
| cache-dependency-path: docs/requirements.txt | |
| - name: 🧰 Install Doxygen | |
| run: sudo apt-get install -y doxygen | |
| - name: 🧰 Install dependencies | |
| run: pip install -r docs/requirements.txt mike | |
| - name: ⚙️ Configure git | |
| run: | | |
| git config user.name "GitHub Actions" | |
| git config user.email "actions@github.com" | |
| - name: 📚 Deploy versioned docs | |
| run: mike deploy --push --update-aliases ${{ github.ref_name }} latest | |
| github-release: | |
| name: 🚀 Create GitHub release | |
| if: github.event_name == 'push' && endsWith(github.event.base_ref, 'master') && startsWith(github.ref, 'refs/tags') | |
| needs: | |
| - c-build-library | |
| - c-check-format | |
| - c-build-cli | |
| - c-build-debian-package | |
| - jvm-build | |
| - jvm-check | |
| - jvm-publish | |
| - python-build | |
| - python-check | |
| - python-typing | |
| - python-security | |
| - python-test | |
| - python-publish | |
| permissions: | |
| contents: write | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 📥 Check-out | |
| uses: actions/checkout@v6 | |
| - name: 📥 Download Linux x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-x86_64 | |
| path: ${{ runner.temp }}/c-library-linux-x86_64/ | |
| - name: 📥 Download Linux aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-linux-aarch64 | |
| path: ${{ runner.temp }}/c-library-linux-aarch64/ | |
| - name: 📥 Download macOS aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-macos-aarch64 | |
| path: ${{ runner.temp }}/c-library-macos-aarch64/ | |
| - name: 📥 Download Windows x86_64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-x86_64 | |
| path: ${{ runner.temp }}/c-library-windows-x86_64/ | |
| - name: 📥 Download Windows aarch64 library | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-library-windows-aarch64 | |
| path: ${{ runner.temp }}/c-library-windows-aarch64/ | |
| - name: 📦 Copy native libraries with architecture-specific names | |
| run: | | |
| mkdir -p tmp/c/ | |
| cp "$RUNNER_TEMP/c-library-linux-x86_64/libtirex_tracker.so" tmp/c/libtirex_tracker_linux_x86_64.so | |
| cp "$RUNNER_TEMP/c-library-linux-aarch64/libtirex_tracker.so" tmp/c/libtirex_tracker_linux_aarch64.so | |
| cp "$RUNNER_TEMP/c-library-macos-aarch64/libtirex_tracker.dylib" tmp/c/libtirex_tracker_macos_aarch64.dylib | |
| cp "$RUNNER_TEMP/c-library-windows-x86_64/tirex_tracker.dll" tmp/c/tirex_tracker_windows_x86_64.dll | |
| cp "$RUNNER_TEMP/c-library-windows-aarch64/tirex_tracker.dll" tmp/c/tirex_tracker_windows_aarch64.dll | |
| - name: 📥 Download Linux CLI | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-cli-linux | |
| path: tmp/c/ | |
| - name: ✏️ Rename Linux CLI | |
| run: mv tmp/c/measure tmp/c/measure-${{ github.ref_name }}-linux | |
| - name: 📥 Download macOS CLI | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-cli-macos | |
| path: tmp/c/ | |
| - name: ✏️ Rename macOS CLI | |
| run: mv tmp/c/measure tmp/c/measure-${{ github.ref_name }}-macos | |
| - name: 📥 Download Windows CLI | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-cli-windows | |
| path: tmp/c/ | |
| - name: ✏️ Rename Windows CLI | |
| run: mv tmp/c/measure.exe tmp/c/measure-${{ github.ref_name }}-windows.exe | |
| - name: 📥 Download Debian package | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: c-debian-package | |
| path: tmp/c/ | |
| - name: 📥 Download Python wheels | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: python-wheels | |
| path: tmp/python/dist/ | |
| - name: 📥 Download JVM Artifacts | |
| uses: actions/download-artifact@v8 | |
| with: | |
| pattern: jvm-* | |
| merge-multiple: true | |
| path: tmp/jvm/ | |
| - name: 🚀 Create GitHub release | |
| uses: softprops/action-gh-release@v3 | |
| with: | |
| name: Release ${{ github.ref_name }} | |
| files: | | |
| tmp/c/*.so | |
| tmp/c/*.dylib | |
| tmp/c/*.dll | |
| tmp/c/measure-*-linux | |
| tmp/c/measure-*-macos | |
| tmp/c/measure-*-windows.exe | |
| tmp/c/tirex-tracker-*-Linux.deb | |
| tmp/python/dist/* | |
| tmp/jvm/*/*.jar | |
| fail_on_unmatched_files: true | |
| draft: false | |
| prerelease: false | |
| generate_release_notes: true |