name: test on: pull_request: workflow_dispatch: workflow_call: inputs: branch: description: "ref branch for this workflow" default: "master" required: true type: string env: CARGO_TERM_COLOR: always jobs: benchsuite: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Environment run: bin/environment.sh - name: Install Prerequisites run: bin/install_prerequisites_ubuntu.sh - name: Install Rust run: bin/install_rust.sh - name: Build run: | bin/release/release.sh echo "PATH=${PWD}/target/release:$PATH" >> "${GITHUB_ENV}" - name: Bench Suite run: bin/test/bench.sh - name: Archive artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-bench-artifacts path: | bench/server.log test-ubuntu-x64-latest: runs-on: ubuntu-latest strategy: matrix: rust: [stable] steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Install Python 3.10 uses: actions/setup-python@v4 with: python-version: '3.10' - name: Environment run: bin/environment.sh - name: Install Prerequisites run: bin/install_prerequisites_ubuntu.sh - name: Install Rust run: bin/install_rust.sh - name: Test Prerequisites run: bin/test/test_prerequisites.sh - name: Tests units run: | bin/test/test_unit.sh bin/release/release.sh echo "PATH=${PWD}/target/release:$PATH" >> "${GITHUB_ENV}" - name: Integration Tests run: bin/test/test_integ.sh - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-ubuntu-latest-${{ matrix.rust }}-artifacts path: | ./**/*.log ./**/report/*.json ./**/report/*.xml test-ubuntu-x64-20-04: runs-on: ubuntu-20.04 strategy: matrix: rust: [stable] steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Install Python 3.10 uses: actions/setup-python@v4 with: python-version: '3.10' - name: Environment run: bin/environment.sh - name: Install Prerequisites run: bin/install_prerequisites_ubuntu.sh - name: Install Rust run: bin/install_rust.sh - name: Test Prerequisites run: bin/test/test_prerequisites.sh - name: Tests units run: | bin/test/test_unit.sh bin/release/release.sh echo "PATH=${PWD}/target/release:$PATH" >> "${GITHUB_ENV}" - name: Integration Tests run: bin/test/test_integ.sh - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-ubuntu-20.04-${{ matrix.rust }}-artifacts path: | ./**/*.log ./**/report/*.json ./**/report/*.xml test-docker-archlinux-x64: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Build, Test units and Integration tests uses: addnab/docker-run-action@v3 with: image: archlinux options: --volume ${{ github.workspace }}:/work --workdir /work --privileged --env CARGO_TERM_COLOR=always run: | set -e echo "::group::Install Prerequisites" bin/install_prerequisites_docker_archlinux.sh echo "::endgroup::" echo "::group::Environment" bin/environment.sh echo "::endgroup::" echo "::group::Install Rust" bin/install_rust.sh echo "::endgroup::" echo "::group::Tests" bin/test/test.sh echo "::endgroup::" - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-archlinux-x64-artifacts path: | ./**/*.log test-docker-fedora-x64: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Build, Test units and Integration tests uses: addnab/docker-run-action@v3 with: image: fedora options: --volume ${{ github.workspace }}:/work --workdir /work --privileged --env CARGO_TERM_COLOR=always run: | set -e echo "::group::Install Prerequisites" bin/install_prerequisites_docker_fedora.sh echo "::endgroup::" echo "::group::Environment" bin/environment.sh echo "::endgroup::" echo "::group::Install Rust" bin/install_rust.sh echo "::endgroup::" echo "::group::Tests" bin/test/test.sh echo "::endgroup::" - name: find artifacts run: | pwd find . -name "*.log" - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-fedora-x64-artifacts path: | ./**/*.log test-docker-alpine-x64: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Build, Test units and Integration tests uses: addnab/docker-run-action@v3 with: image: alpine options: --volume ${{ github.workspace }}:/work --workdir /work --privileged --env CARGO_TERM_COLOR=always run: | set -e apk update --quiet apk add --quiet bash echo "::group::Install Prerequisites" bin/install_prerequisites_alpine.sh echo "::endgroup::" echo "::group::Environment" bin/environment.sh echo "::endgroup::" echo "::group::Install Rust" bin/install_rust.sh echo "::endgroup::" echo "::group::Tests" bin/test/test.sh echo "::endgroup::" - name: find artifacts run: | pwd find . -name "*.log" - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-alpine-x64-artifacts path: | ./**/*.log test-macos-x64: runs-on: macos-latest strategy: matrix: rust: [stable] steps: - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Environment run: bin/environment.sh - name: Install Prerequisites run: bin/install_prerequisites_macos.sh - name: Install Rust run: bin/install_rust.sh - name: Test Prerequisites run: | bin/test/test_prerequisites.sh - name: Tests units run: | bin/test/test_unit.sh bin/release/release.sh echo "PATH=${PWD}/target/release:$PATH" >> "${GITHUB_ENV}" - name: Integration Tests run: bin/test/test_integ.sh - name: find artifacts run: | pwd find . -name "*.log" - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-macos-${{ matrix.rust }}-artifacts path: | ./**/*.log test-windows-x64: runs-on: windows-latest strategy: matrix: rust: [stable] env: VCPKGRS_DYNAMIC: 1 steps: - name: Set git to use LF run: | git config --global core.autocrlf false git config --global core.eol lf - name: Checkout repository uses: actions/checkout@v3 with: ref: ${{ inputs.branch }} - name: Manage vcpkg cache uses: actions/cache@v3 with: path: C:\vcpkg key: ${{ runner.os }}-test-windows-x64 - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable override: true profile: minimal - name: Environment run: .\bin\environment.ps1 - name: Install Prerequisites run: .\bin\install_prerequisites_windows.ps1 - name: Build and test run: .\bin\test\test.ps1 - name: Archive production artifacts uses: actions/upload-artifact@v3 if: ${{ always() }} with: name: tests-win64-${{ matrix.rust }}-artifacts path: | ./**/*.log