Run integration tests on x86 macOS #37
This file contains 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
on: | |
workflow_dispatch: | |
inputs: | |
composition-versions: | |
description: 'JSON list of supergraph versions' | |
required: true | |
type: string | |
router-versions: | |
description: 'JSON list of router versions' | |
required: true | |
type: string | |
jobs: | |
build-rover: | |
name: Build Rover for macOS x86-64 | |
# Arm64 runner for cross-compilation | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
name: "Checkout rover repo" | |
- uses: actions-rs/toolchain@v1 | |
name: "Install x86_64 toolchain for cross-compilation" | |
with: | |
toolchain: stable | |
target: x86_64-apple-darwin | |
- run: | | |
rustup target add x86_64-apple-darwin | |
# Build rover | |
- uses: actions-rs/cargo@v1 | |
name: "Build rover binary" | |
with: | |
command: build | |
args: --target x86_64-apple-darwin | |
# Build xtask | |
- uses: actions-rs/cargo@v1 | |
name: "Build xtask binary" | |
with: | |
command: build | |
args: --target x86_64-apple-darwin -p xtask | |
- uses: actions/upload-artifact@v4 | |
name: "Store built binaries to use later on" | |
with: | |
path: | | |
target/x86_64-apple-darwin/debug/rover | |
target/x86_64-apple-darwin/debug/xtask | |
if-no-files-found: error | |
retention-days: 5 | |
integration-tests: | |
needs: build-rover | |
name: Run integration tests on macOS x86-64 | |
strategy: | |
matrix: | |
composition-version: ${{ fromJSON(inputs.composition-versions) }} | |
# x86-64 runner | |
runs-on: macos-14-large | |
env: | |
TEST_COMPOSITION_VERSION: "=${{ matrix.composition-version }}" | |
ROVER_BINARY: ../../artifact/rover | |
FLYBY_APOLLO_KEY: ${{ secrets.FLYBY_APOLLO_KEY }} | |
steps: | |
- uses: actions/checkout@v4 | |
name: "Checkout rover repo" | |
- uses: actions/download-artifact@v4 | |
name: "Download artifacts built in previous stages" | |
- uses: volta-cli/action@v4 | |
name: "Install volta" | |
- name: Add explicit version to `supergraph.yaml` files | |
run: | | |
for f in examples/flyby/supergraphs/*.yaml; do yq -i '.federation_version = strenv(TEST_COMPOSITION_VERSION)' $f; cat $f; done | |
- name: Run Integration tests | |
run: | | |
chmod +x ./artifact/{rover,xtask} | |
./artifact/xtask integration-test | |
smoke-tests: | |
needs: build-rover | |
name: Run simple smoke tests on macOS x86-64 | |
strategy: | |
matrix: | |
composition-version: ${{ fromJSON(inputs.composition-versions) }} | |
router-version: ${{ fromJSON(inputs.router-versions) }} | |
# x86-64 runner | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@v4 | |
name: "Checkout rover repo" | |
- uses: actions/download-artifact@v4 | |
name: "Download artifacts built in previous stages" | |
- uses: volta-cli/action@v4 | |
name: "Install volta" | |
- name: Run Smoke Tests | |
run: | | |
chmod +x ./artifact/{rover,xtask} | |
./artifact/xtask smoke --binary-path ./artifact/rover --federation-version "${{ matrix.composition-version }}" --router-version "${{ matrix.router-version }}" |