From 7c3cdba44a634b451ed866b00c0b07e191a13807 Mon Sep 17 00:00:00 2001 From: Isah Idris <58168886+eedygreen@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:44:24 +0100 Subject: [PATCH 1/3] pipeline: mainnet --- .github/workflows/deploy_mainnet.yml | 80 ++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/deploy_mainnet.yml diff --git a/.github/workflows/deploy_mainnet.yml b/.github/workflows/deploy_mainnet.yml new file mode 100644 index 0000000..6f1dc52 --- /dev/null +++ b/.github/workflows/deploy_mainnet.yml @@ -0,0 +1,80 @@ +name: Mainnet Squid Indexer + +on: + workflow_dispatch: + inputs: + release_tag: + description: 'The Release tag Version' + required: true + type: string + +run-name: Deploy Squid-Indexer to Mainnet - ${{ inputs.release_tag }} by @${{ github.actor }} + +env: + ENVIRONMENT: MAINNET + REGISTRY: 'ghcr.io' + VERSION: ${{ inputs.release_tag }} + +jobs: + deploy: + name: deploy + runs-on: ubuntu-latest + environment: mainnet + permissions: + contents: read + id-token: write + actions: write + env: + AWS_REGION: '${{ secrets.AWS_REGION }}' + AWS_MAINNET: '${{ secrets.AWS_MAINNET }}' + + steps: + - name: Authorised User only + run: | + if [[ ! " tcar121293 eedygreen MakMuftic akchainsafe mpetrun5 " =~ " ${{ github.actor }} " ]]; then + echo "You are not authorized to deploy to mainnet!" + exit 1 + fi + + - name: checkout ecs repo + uses: actions/checkout@v4 + with: + repository: sygmaprotocol/devops + token: ${{ secrets.GHCR_TOKEN }} + ref: main + + - name: render jinja2 templates to task definition json files + uses: cuchi/jinja2-action@v1.2.0 + with: + template: 'sygma-explorer/ecs/task_definition-explorer-indexer-${{ env.ENVIRONMENT }}.j2' + output_file: 'sygma-explorer/ecs/task_definition-explorer-indexer-${{ env.ENVIRONMENT }}.json' + data_format: json + variables: | + awsAccountId=${{ env.AWS_MAINNET }} + awsRegion=${{ env.AWS_REGION }} + awsEnv=${{ env.ENVIRONMENT }} + imageTag=${{ env.VERSION }} + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::${{ env.AWS_MAINNET }}:role/github-actions-${{ env.ENVIRONMENT }}-chainbridge + aws-region: ${{ env.AWS_REGION }} + role-session-name: GithubActions + + - name: Deploy to Amazon ECS + uses: aws-actions/amazon-ecs-deploy-task-definition@v1 + with: + task-definition: sygma-explorer/ecs/task_definition-explorer-indexer-${{ env.ENVIRONMENT }}.json + service: explorer-indexer-service-${{ env.ENVIRONMENT }} + cluster: sygma-explorer-${{ env.ENVIRONMENT }} + wait-for-service-stability: true + + - name: slack notify + uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,message,commit,author,action,job,eventName,ref,workflow # selectable (default: repo,message) + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required + if: always() From 5f832f35152559575b9b4cf273e06d9d9c1e4b2d Mon Sep 17 00:00:00 2001 From: Isah Idris <58168886+eedygreen@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:44:36 +0100 Subject: [PATCH 2/3] pipeline: testnet --- .github/workflows/deploy_testnet.yml | 114 +++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 .github/workflows/deploy_testnet.yml diff --git a/.github/workflows/deploy_testnet.yml b/.github/workflows/deploy_testnet.yml new file mode 100644 index 0000000..712dd4a --- /dev/null +++ b/.github/workflows/deploy_testnet.yml @@ -0,0 +1,114 @@ +name: Testnet Squid Indexer + +on: + release: + types: + - published + +run-name: Deploy Squid-Indexer to Testnet - ${{ inputs.release_tag }} by @${{ github.actor }} + +env: + ENVIRONMENT: TESTNET + REGISTRY: 'ghcr.io' + TAG: 'latest' + VERSION: ${{ github.event.release.tag_name }} + +jobs: + push: + name: push + runs-on: ubuntu-latest + + permissions: + contents: read + id-token: write + packages: write + actions: read + + steps: + - name: checkout the source code + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: login to ghcr + id: ghcr + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: build / tag / push docker image into ghcr + id: build-and-push-tag + uses: docker/build-push-action@v3 + with: + context: . + push: true + tags: ${{ env.REGISTRY }}/${{ github.repository }}:${{ env.VERSION }},${{ env.REGISTRY }}/${{ github.repository }}:${{ github.ref_name }} + + - name: slack notify + uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,message,commit,author,action,job,eventName,ref,workflow + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + if: always() + + deploy: + needs: push + name: deploy + runs-on: ubuntu-latest + environment: testnet + permissions: + contents: read + id-token: write + actions: write + env: + AWS_REGION: '${{ secrets.AWS_REGION }}' + AWS_TESTNET: '${{ secrets.AWS_TESTNET }}' + steps: + - name: checkout ecs repo + uses: actions/checkout@v4 + with: + repository: sygmaprotocol/devops + token: ${{ secrets.GHCR_TOKEN }} + ref: main + + - name: render jinja2 templates to task definition json files + uses: cuchi/jinja2-action@v1.2.0 + with: + template: 'squid-indexer/ecs/task_definition-squid-indexer-${{ env.ENVIRONMENT }}.j2' + output_file: 'squid-indexer/ecs/task_definition-squid-indexer-${{ env.ENVIRONMENT }}.json' + data_format: json + variables: | + awsAccountId=${{ env.AWS_TESTNET }} + awsRegion=${{ env.AWS_REGION }} + awsEnv=${{ env.ENVIRONMENT }} + imageTag=${{ env.VERSION }} + + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: arn:aws:iam::${{ env.AWS_TESTNET }}:role/github-actions-${{ env.ENVIRONMENT }}-chainbridge + aws-region: ${{ env.AWS_REGION }} + role-session-name: GithubActions + + - name: Deploy to Amazon ECS + uses: aws-actions/amazon-ecs-deploy-task-definition@v1 + with: + task-definition: squid-indexer/ecs/task_definition-squid-indexer-${{ env.ENVIRONMENT }}.json + service: squid-indexer-service-${{ env.ENVIRONMENT }} + cluster: explorer-indexer-${{ env.ENVIRONMENT }} + wait-for-service-stability: true + + - name: slack notify + uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,message,commit,author,action,job,eventName,ref,workflow # selectable (default: repo,message) + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required + if: always() + \ No newline at end of file From ef8977640020b2e9ce86e048735047121f5293ec Mon Sep 17 00:00:00 2001 From: Isah Idris <58168886+eedygreen@users.noreply.github.com> Date: Tue, 17 Dec 2024 14:49:43 +0100 Subject: [PATCH 3/3] pipeline: mainnet --- .github/workflows/deploy_mainnet.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/deploy_mainnet.yml b/.github/workflows/deploy_mainnet.yml index 6f1dc52..9a0ce22 100644 --- a/.github/workflows/deploy_mainnet.yml +++ b/.github/workflows/deploy_mainnet.yml @@ -46,8 +46,8 @@ jobs: - name: render jinja2 templates to task definition json files uses: cuchi/jinja2-action@v1.2.0 with: - template: 'sygma-explorer/ecs/task_definition-explorer-indexer-${{ env.ENVIRONMENT }}.j2' - output_file: 'sygma-explorer/ecs/task_definition-explorer-indexer-${{ env.ENVIRONMENT }}.json' + template: 'squid-indexer/ecs/task_definition-squid-indexer-${{ env.ENVIRONMENT }}.j2' + output_file: 'suid-indexer/ecs/task_definition-squid-indexer-${{ env.ENVIRONMENT }}.json' data_format: json variables: | awsAccountId=${{ env.AWS_MAINNET }} @@ -65,8 +65,8 @@ jobs: - name: Deploy to Amazon ECS uses: aws-actions/amazon-ecs-deploy-task-definition@v1 with: - task-definition: sygma-explorer/ecs/task_definition-explorer-indexer-${{ env.ENVIRONMENT }}.json - service: explorer-indexer-service-${{ env.ENVIRONMENT }} + task-definition: squid-indexer/ecs/task_definition-squid-indexer-${{ env.ENVIRONMENT }}.json + service: squid-indexer-service-${{ env.ENVIRONMENT }} cluster: sygma-explorer-${{ env.ENVIRONMENT }} wait-for-service-stability: true