mirror of
https://github.com/graphql-hive/console
synced 2026-04-21 14:37:17 +00:00
88 lines
2.8 KiB
YAML
88 lines
2.8 KiB
YAML
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/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
|