Fix tests - Subgraph stopped resolving some names (#511) #79
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: NameGuard API - Lambda Deploy | |
on: | |
push: | |
branches: | |
- main | |
- staging | |
paths: | |
- "packages/nameguard-python/**" | |
- "apps/api.nameguard.io/**" | |
- ".github/workflows/nameguard-api-lambda-deploy.yml" | |
workflow_dispatch: | |
permissions: | |
# `id-token: write` is required for the auth to AWS | |
id-token: write | |
contents: read | |
concurrency: | |
group: ${{ github.workflow }} | |
# `cancel-in-progress: false` creates a queue for workflow runs, such that | |
# only one instance of this workflow runs at a time. | |
cancel-in-progress: false | |
jobs: | |
build-image-deploy: | |
name: Build and deploy NameGuard API Lambda | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout this repo | |
uses: actions/checkout@v4 | |
- name: Configure AWS credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE}} | |
aws-region: ${{ secrets.AWS_REGION }} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
platforms: arm64 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Setup Terraform | |
uses: hashicorp/setup-terraform@v2 | |
with: | |
terraform_version: "1.5.7" | |
terraform_wrapper: false | |
- name: Build and deploy lambda | |
env: | |
PROVIDER_URI_MAINNET: ${{ secrets.PROVIDER_URI_MAINNET }} | |
PROVIDER_URI_SEPOLIA: ${{ secrets.PROVIDER_URI_SEPOLIA }} | |
ALCHEMY_URI_MAINNET: ${{ secrets.ALCHEMY_URI_MAINNET }} | |
ALCHEMY_URI_SEPOLIA: ${{ secrets.ALCHEMY_URI_SEPOLIA }} | |
ENS_SUBGRAPH_URL_MAINNET: ${{ secrets.ENS_SUBGRAPH_URL_MAINNET }} | |
ENS_SUBGRAPH_URL_SEPOLIA: ${{ secrets.ENS_SUBGRAPH_URL_SEPOLIA }} | |
AWS_REGION: ${{ secrets.AWS_REGION }} | |
CERTIFICATE_NAME: ${{ secrets.CERTIFICATE_NAME }} | |
HOSTED_ZONE_NAME: ${{ secrets.HOSTED_ZONE_NAME }} | |
run: | | |
if [[ ${{ github.ref }} == 'refs/heads/main' ]]; then | |
STAGE="prod" | |
DOMAIN_NAME=${{ secrets.PROD_DOMAIN_NAME }} | |
elif [[ ${{ github.ref }} == 'refs/heads/staging' ]]; then | |
STAGE="staging" | |
DOMAIN_NAME=${{ secrets.STAGING_DOMAIN_NAME }} | |
else | |
echo "Deployment is only supported for main and staging branches" | |
exit 1 | |
fi | |
cd terraform | |
chmod +x ./deploy_lambda.sh | |
./deploy_lambda.sh $STAGE $AWS_REGION $DOMAIN_NAME $CERTIFICATE_NAME $HOSTED_ZONE_NAME | |
working-directory: apps/api.nameguard.io | |
notify: | |
name: Send Slack deployment event notification | |
needs: [build-image-deploy] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Output status on deployment success | |
if: ${{ needs.build-image-deploy.result == 'success'}} | |
run: | | |
echo "STATUS=Success :rocket:" >> $GITHUB_ENV | |
echo "TEXT=Lambda NameGuard deployed successfully! :white_check_mark:" >> $GITHUB_ENV | |
echo "COLOR=good" >> $GITHUB_ENV | |
- name: Output status on deployment failed | |
if: ${{ needs.build-image-deploy.result == 'failure' }} | |
run: | | |
echo "STATUS=Failure :x:" >> $GITHUB_ENV | |
echo "TEXT=Lambda NameGuard deployment failed! :rotating_light:" >> $GITHUB_ENV | |
echo "COLOR=danger" >> $GITHUB_ENV | |
- name: Output status on deployment cancellation | |
if: ${{ needs.build-image-deploy.result == 'cancelled' }} | |
run: | | |
echo "STATUS=Cancelled :no_entry_sign:" >> $GITHUB_ENV | |
echo "TEXT=Lambda NameGuard deployment was cancelled. :warning:" >> $GITHUB_ENV | |
echo "COLOR=warning" >> $GITHUB_ENV | |
- name: Send deployment status Slack notification | |
uses: 8398a7/action-slack@v3 | |
with: | |
status: custom | |
fields: commit,workflow,repo | |
custom_payload: | | |
{ | |
attachments: [{ | |
color: '${{ env.COLOR }}', | |
title: 'Lambda NameGuard deployment.', | |
text: '${{ env.TEXT }}', | |
fields: [ | |
{ | |
title: 'Repository', | |
value: `${process.env.AS_REPO}`, | |
short: true | |
}, | |
{ | |
title: 'Status', | |
value: '${{ env.STATUS }}', | |
short: true | |
}, | |
{ | |
title: 'Workflow', | |
value: `${process.env.AS_WORKFLOW}`, | |
short: true | |
} | |
] | |
}] | |
} | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL}} |