Merge pull request #247 from holaplex/espi/json-uploads #113
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
name: Apollo Graph schema update | |
on: | |
push: | |
branches: | |
- main | |
- release | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
schemaUpdate: | |
name: Apollo Schema update | |
runs-on: amd64 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update -y && \ | |
sudo apt-get install -y --no-install-recommends \ | |
cmake \ | |
g++ \ | |
libsasl2-dev \ | |
libssl-dev \ | |
libudev-dev \ | |
pkg-config | |
- name: Get protoc from github releases | |
run: | | |
sudo ./ci/get-protoc.sh | |
- uses: isbang/[email protected] | |
name: Start docker-compose | |
with: | |
compose-file: ./docker-compose.yaml | |
- uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: 1.71.0 | |
override: true | |
components: cargo, rustc | |
- uses: tespkg/actions-cache@v1 | |
with: | |
accessKey: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
secretKey: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
bucket: ${{ vars.AWS_BUCKET }} | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ github.event.repository.name }}-${{ runner.arch }}-cargo-build-${{ hashFiles('**/Cargo.lock', 'rust-toolchain.toml') }} | |
- name: Cargo Build | |
run: cargo build --bin holaplex-${{ github.event.repository.name }} | |
- name: Cargo run | |
env: | |
PORT: 3000 | |
run: export $(xargs < .env) && cargo run --bin holaplex-${{ github.event.repository.name }} & | |
- name: Setup Apollo Studio variant | |
id: vars | |
run: | | |
if [[ "${{ github.ref }}" == "refs/heads/release" ]]; then | |
echo "variant=current" >> $GITHUB_OUTPUT | |
echo "branch=release" >> $GITHUB_OUTPUT | |
else | |
echo "variant=stage" >> $GITHUB_OUTPUT | |
echo "branch=main" >> $GITHUB_OUTPUT | |
fi | |
- name: Retrieve GraphQL schema and push to Apollo Studio | |
env: | |
APOLLO_KEY: ${{ secrets.APOLLO_KEY }} | |
run: | | |
curl -sSL https://rover.apollo.dev/nix/latest | sh | |
export PATH="/home/runner/.rover/bin:$PATH" | |
# Instrospect Graphql Server and push schema | |
rover subgraph introspect http://localhost:3000/graphql | \ | |
rover subgraph publish ${{ vars.APOLLO_GRAPH }}@${{ steps.vars.outputs.variant }} \ | |
--name ${{ github.event.repository.name }} \ | |
--schema - \ | |
--routing-url http://${{ github.event.repository.name }}/graphql | |
- name: Invoke schema update workflow in hub-permissions repo | |
uses: benc-uk/workflow-dispatch@v1 | |
with: | |
ref: ${{ steps.vars.outputs.branch }} | |
token: ${{ secrets.ACTIONS_TOKEN }} | |
workflow: opa_release.yml | |
repo: holaplex/hub-permissions |