Skip to content

Run integration tests on x86 macOS #37

Run integration tests on x86 macOS

Run integration tests on x86 macOS #37

Workflow file for this run

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 }}"