Skip to content

Add async-graphql integration #548

Add async-graphql integration

Add async-graphql integration #548

Workflow file for this run

name: pr
on:
pull_request:
paths:
- 'packages/libraries/router/**'
- 'docker/router.dockerfile'
- 'scripts/compress/**'
- 'configs/cargo/Cargo.lock'
- 'Cargo.lock'
- 'Cargo.toml'
env:
HIVE_TOKEN: ${{ secrets.HIVE_TOKEN }}
jobs:
# Builds Rust crates, and creates Docker images
build-rust:
name: build_rust
uses: ./.github/workflows/build-and-dockerize.yaml
with:
dockerize: ${{ !github.event.pull_request.head.repo.fork }}
imageTag: ${{ github.event.pull_request.head.sha }}
publishLatest: false
targets: 'rust'
build: false
publishPrComment: false
uploadJavaScriptArtifacts: false
secrets: inherit
# Run Docker image
run-docker:
name: run-docker
runs-on: ubuntu-22.04
needs: build-rust
if: ${{ !github.event.pull_request.head.repo.fork }}
steps:
- name: Run Docker image
run: |
# Create router.yaml
cat << EOF > router.yaml
supergraph:
listen: 0.0.0.0:4000
health_check:
listen: 0.0.0.0:8088
enabled: true
path: /health
plugins:
hive.usage:
enabled: false
EOF
# Download supergraph
curl -sSL https://supergraph.demo.starstuff.dev/ > ./supergraph.graphql
# Run Docker image
docker run -p 4000:4000 -p 8088:8088 --name apollo_router_test -d \
--env HIVE_TOKEN="fake" \
--mount "type=bind,source=/$(pwd)/router.yaml,target=/dist/config/router.yaml" \
--mount "type=bind,source=/$(pwd)/supergraph.graphql,target=/dist/config/supergraph.graphql" \
ghcr.io/kamilkisiela/graphql-hive/apollo-router:${{ github.event.pull_request.head.sha }} \
--log debug \
--supergraph /dist/config/supergraph.graphql \
--config /dist/config/router.yaml
# Wait for the container to be ready
echo "Waiting for the container to be ready..."
sleep 20
HTTP_RESPONSE=$(curl --retry 5 --retry-delay 5 --max-time 30 --write-out "%{http_code}" --silent --output /dev/null "http://127.0.0.1:8088/health")
# Check if the HTTP response code is 200 (OK)
if [ $HTTP_RESPONSE -eq 200 ]; then
echo "Health check successful."
docker stop apollo_router_test
docker rm apollo_router_test
exit 0
else
echo "Health check failed with HTTP status code $HTTP_RESPONSE."
docker stop apollo_router_test
docker rm apollo_router_test
exit 1
fi
# Builds binaries from Rust crates
build-rust-binaries:
name: build-rust-binaries
uses: ./.github/workflows/publish-rust.yaml
with:
publish: false
secrets: inherit