# Compile the test framework --- name: DES Testframework - Build on: pull_request: paths: - '**' - '!**/**.md' - '!.github/workflows/**' - '.github/workflows/testframework.yml' - "!.github/CODEOWNERS" - '!android/**' - 'android/translations-converter/**' - '!audits/**' - '!build.sh' - '!ci/**' - 'ci/cargo-ci.sh' - '!clippy.toml' - '!deny.toml' - '!docs/**' - '!graphics/**' - '!desktop/**' - '!ios/**' - '!scripts/**' - '!.*ignore' - '!prepare-release.sh' - '!rustfmt.toml' - '!.yamllint' - '!**/osv-scanner.toml' workflow_dispatch: permissions: {} jobs: prepare-build-test-framework-linux: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Use custom container image if specified if: ${{ github.event.inputs.override_container_image != '' }} run: echo "inner_container_image=${{ github.event.inputs.override_container_image }}" >> $GITHUB_ENV - name: Use default container image and resolve digest if: ${{ github.event.inputs.override_container_image == '' }} run: echo "inner_container_image=$(cat ./building/linux-container-image.txt)" >> $GITHUB_ENV outputs: container_image: ${{ env.inner_container_image }} # Build the test runner + test manager at once. build-test-framework-linux: needs: prepare-build-test-framework-linux runs-on: ubuntu-latest container: image: ${{ needs.prepare-build-test-framework-linux.outputs.container_image }} steps: # Fix for HOME path overridden by GH runners when building in containers, see: # https://github.com/actions/runner/issues/863 - name: Fix HOME path run: echo "HOME=/root" >> $GITHUB_ENV - name: Install system dependencies # Needed to build test-manager, and is not included in the app container. run: apt update && apt install -y pkg-config libssl-dev libpcap-dev - name: Checkout repository uses: actions/checkout@v4 - name: Build test framework working-directory: test run: ../ci/cargo-ci.sh build # Build the test runner + test manager at once. build-test-framework-macos: runs-on: macos-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install Protoc uses: arduino/setup-protoc@v3 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build test runner working-directory: test run: ../ci/cargo-ci.sh build # Build only the test-runner binary on Windows. Windows is not a supported host for test-manager. build-test-runner-windows: # Cross-compile the test runner for Windows from Linux. needs: prepare-build-test-framework-linux runs-on: ubuntu-latest container: image: ${{ needs.prepare-build-test-framework-linux.outputs.container_image }} continue-on-error: true steps: # Fix for HOME path overridden by GH runners when building in containers, see: # https://github.com/actions/runner/issues/863 - name: Fix HOME path run: echo "HOME=/root" >> $GITHUB_ENV - name: Checkout repository uses: actions/checkout@v4 - name: Install Rust target run: rustup target add x86_64-pc-windows-gnu - name: Build test runner working-directory: test run: ../ci/cargo-ci.sh build -p test-runner --target x86_64-pc-windows-gnu