From 1adef73d0e4f3cec1ade0da762e8d10a66ac0fc2 Mon Sep 17 00:00:00 2001 From: AlexanderNtk <96421433+AlexanderNtk@users.noreply.github.com> Date: Fri, 28 Jun 2024 16:05:50 +0500 Subject: [PATCH] Workflow updated --- .github/workflows/build-artifact.yaml | 236 ++++++++++++++++++++++++++ .github/workflows/config-check.yaml | 4 +- .github/workflows/sync_repos.yaml | 52 ++++++ .github/workflows/testnet-deploy.yaml | 1 + pingpub.commit | 1 + 5 files changed, 292 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/build-artifact.yaml create mode 100644 .github/workflows/sync_repos.yaml create mode 100644 pingpub.commit diff --git a/.github/workflows/build-artifact.yaml b/.github/workflows/build-artifact.yaml new file mode 100644 index 00000000..b54824ef --- /dev/null +++ b/.github/workflows/build-artifact.yaml @@ -0,0 +1,236 @@ + +name: Build Artifacts + +on: + push: + branches: [ sge ] + # pull_request: + # branches: [ master ] + workflow_dispatch: + +jobs: + build_packages: + strategy: + matrix: + include: + - env: mainnet + cfg: "chains/mainnet/sge.json" + - env: testnet + cfg: "chains/testnet/sge.json" + - env: staging + cfg: "chains/testnet/sge_stage.json" + runs-on: ubuntu-latest + steps: + - name: Environment + run: export NODE_OPTIONS="--max_old_space_size=4096" + + - name: Git Checkout Latest + uses: actions/checkout@v4 + + - name: Update config + run: | + if [ ${{ matrix.env }} != "mainnet" ]; then cp ${{ matrix.cfg }} chains/mainnet/sge.json; fi + + - name: Install + run: yarn install --ignore-engines + + - name: Build + run: yarn build + + - name: Pack + run: | + mv dist/ pingpub + tar -czf pingpub_${{ matrix.env }}.tar.gz ./pingpub/ + + - uses: actions/upload-artifact@v4 + id: upload + with: + name: pingpub_${{ matrix.env }}.tar.gz + path: pingpub_${{ matrix.env }}.tar.gz + retention-days: 1 + + build_image_staging: + needs: build_packages + runs-on: ubuntu-latest + outputs: + PINGPUB_AMI_STAGING: ${{ steps.extract.outputs.PINGPUB_AMI }} + permissions: + id-token: write + contents: read + steps: + - name: Checkout aws-infra + uses: actions/checkout@v4 + with: + repository: 'saage-tech/aws-infra' + token: ${{ secrets.READ_ST }} + + - name: Download + uses: actions/download-artifact@v4 + + - name: Assume role + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_STAGING }} + aws-region: ${{ secrets.AWS_REGION_STAGING }} + + - name: Packer Init + run: | + cp pingpub_staging.tar.gz/pingpub_staging.tar.gz ./packer/blockexplorer/files/pingpub.tar.gz + cd packer/blockexplorer + packer init . + + - name: Packer Build + working-directory: packer/blockexplorer + run: | + packer build -var-file=staging.pkvars.hcl blockexplorer.pkr.hcl + + - name: Extract AMI_ID + id: extract + working-directory: packer/blockexplorer + run : | + AMI_ID=$(jq -r '.builds[-1].artifact_id' packer-manifest.json | cut -d ":" -f2) + echo "PINGPUB_AMI=$AMI_ID" >> $GITHUB_OUTPUT + echo $AMI_ID + + build_image_testnet: + needs: build_packages + runs-on: ubuntu-latest + outputs: + PINGPUB_AMI_TESTNET: ${{ steps.extract.outputs.PINGPUB_AMI }} + permissions: + id-token: write + contents: read + steps: + - name: Checkout aws-infra + uses: actions/checkout@v4 + with: + repository: 'saage-tech/aws-infra' + token: ${{ secrets.READ_ST }} + + - name: Download + uses: actions/download-artifact@v4 + + - name: Assume role + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_TESTNET }} + aws-region: ${{ secrets.AWS_REGION_TESTNET }} + + - name: Packer Init + run: | + cp pingpub_testnet.tar.gz/pingpub_testnet.tar.gz ./packer/blockexplorer/files/pingpub.tar.gz + cd packer/blockexplorer + packer init . + + - name: Packer Build + working-directory: packer/blockexplorer + run: | + packer build -var-file=testnet.pkvars.hcl blockexplorer.pkr.hcl + + - name: Extract AMI_ID + id: extract + working-directory: packer/blockexplorer + run : | + AMI_ID=$(jq -r '.builds[-1].artifact_id' packer-manifest.json | cut -d ":" -f2) + echo "PINGPUB_AMI=$AMI_ID" >> $GITHUB_OUTPUT + echo $AMI_ID + + build_image_mainnet: + needs: build_packages + runs-on: ubuntu-latest + outputs: + PINGPUB_AMI_MAINNET: ${{ steps.extract.outputs.PINGPUB_AMI }} + permissions: + id-token: write + contents: read + steps: + - name: Checkout aws-infra + uses: actions/checkout@v4 + with: + repository: 'saage-tech/aws-infra' + token: ${{ secrets.READ_ST }} + + - name: Download + uses: actions/download-artifact@v4 + + - name: Assume role + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME_MAINNET }} + aws-region: ${{ secrets.AWS_REGION_MAINNET }} + + - name: Packer Init + run: | + cp pingpub_mainnet.tar.gz/pingpub_mainnet.tar.gz ./packer/blockexplorer/files/pingpub.tar.gz + cd packer/blockexplorer + packer init . + + - name: Packer Build + working-directory: packer/blockexplorer + run: | + packer build -var-file=mainnet.pkvars.hcl blockexplorer.pkr.hcl + + - name: Extract AMI_ID + id: extract + working-directory: packer/blockexplorer + run : | + ls -la + AMI_ID=$(jq -r '.builds[-1].artifact_id' packer-manifest.json | cut -d ":" -f2) + echo "PINGPUB_AMI=$AMI_ID" >> $GITHUB_OUTPUT + echo $AMI_ID + + update_ami: + needs: [ build_image_staging, build_image_testnet, build_image_mainnet ] + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Checkout terragrunt code + uses: actions/checkout@v4 + with: + repository: 'saage-tech/terragrunt-live-sgenetwork' + token: ${{ secrets.UPDATE_ST }} + + - name: Replace AMI IDs + env: + MAINNET_AMI: ${{ needs.build_image_mainnet.outputs.PINGPUB_AMI_MAINNET }} + TESTNET_AMI: ${{ needs.build_image_testnet.outputs.PINGPUB_AMI_TESTNET }} + STAGING_AMI: ${{ needs.build_image_staging.outputs.PINGPUB_AMI_STAGING }} + run: | + ls -la $GITHUB_WORKSPACE + cd ${GITHUB_WORKSPACE}/staging/us-east-1/blockchain/pingpub/instance/pingpub-priv + sed -i "s/aws_instance_ami =.*/aws_instance_ami = ${STAGING_AMI}/g" terragrunt.hcl + cd ${GITHUB_WORKSPACE}/testnet/us-east-1/public-testnet-20221028/pingpub/instances/pingpub-priv + sed -i "s/aws_instance_ami =.*/aws_instance_ami = ${TESTNET_AMI}/g" terragrunt.hcl + cd ${GITHUB_WORKSPACE}/mainnet/ap-northeast-2/blockchain/pingpub/instance/pingpub-priv + sed -i "s/aws_instance_ami =.*/aws_instance_ami = ${MAINNET_AMI}/g" terragrunt.hcl + + - name: Check terragrunt HCL mainnet + uses: gruntwork-io/terragrunt-action@v2 + with: + tf_version: v1.3.3 + tg_version: v0.42.3 + tg_dir: mainnet/ap-northeast-2/blockchain/pingpub/instance/pingpub-priv + tg_command: 'hclfmt' + + - name: Check terragrunt HCL testnet + uses: gruntwork-io/terragrunt-action@v2 + with: + tf_version: v1.3.3 + tg_version: v0.42.3 + tg_dir: testnet/us-east-1/public-testnet-20221028/pingpub/instances/pingpub-priv + tg_command: 'hclfmt' + + - name: Check terragrunt HCL staging + uses: gruntwork-io/terragrunt-action@v2 + with: + tf_version: v1.3.3 + tg_version: v0.42.3 + tg_dir: staging/us-east-1/blockchain/pingpub/instance/pingpub-priv + tg_command: 'hclfmt' + + - name: Commit changes + uses: stefanzweifel/git-auto-commit-action@v5 + with: + commit_message: Automated Change - PingPub update + push_options: --force \ No newline at end of file diff --git a/.github/workflows/config-check.yaml b/.github/workflows/config-check.yaml index a9bad362..91dd2c1b 100644 --- a/.github/workflows/config-check.yaml +++ b/.github/workflows/config-check.yaml @@ -2,8 +2,8 @@ name: Config Checker on: - # push: - # branches: [ master ] + push: + branches: [ master, sge ] pull_request: # branches: [ master ] paths: diff --git a/.github/workflows/sync_repos.yaml b/.github/workflows/sync_repos.yaml new file mode 100644 index 00000000..f1151e1a --- /dev/null +++ b/.github/workflows/sync_repos.yaml @@ -0,0 +1,52 @@ +name: Sync repo + +on: + schedule: + - cron: "0 1 * * 3" + workflow_dispatch: + +jobs: + get_state: + runs-on: ubuntu-latest + outputs: + EXPLORER: ${{ steps.status.outputs.EXPLORER }} + UPDATE: ${{ steps.status.outputs.UPDATE }} + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Get commits + id: status + run: | + echo "EXPLORER=$(git ls-remote -h https://github.com/ping-pub/explorer.git master | cut -f1)" >> $GITHUB_OUTPUT + grep '^${EXPLORER}$' pingpub.commit && echo "UPDATE=0" >> $GITHUB_OUTPUT || export echo "UPDATE=1" >> $GITHUB_OUTPUT + + repo_sync: + needs: get_state + runs-on: ubuntu-latest + if: needs.get_state.outputs.UPDATE == 0 #Should be changed later + steps: + - name: Clone SGE Repo + uses: actions/checkout@v4 + with: + ref: 'sge' + + - name: Clone Original Repo + uses: actions/checkout@v4 + with: + repository: 'ping-pub/explorer' + ref: 'master' + path: 'original' + + - name: Update files + run: | + rm original/chains/mainnet/cosmos.json original/chains/mainnet/neutron.json original/chains/mainnet/nolus.json + rm original/chains/mainnet/osmosis.json original/chains/testnet/crossfi.json + cp -r ./original/* ./ + rm -rf original/ + echo $UPDATE > pingpub.commit + + - name: Commit changes + uses: stefanzweifel/git-auto-commit-action@v5 + with: + branch: 'sge' \ No newline at end of file diff --git a/.github/workflows/testnet-deploy.yaml b/.github/workflows/testnet-deploy.yaml index 55391d01..02887afa 100644 --- a/.github/workflows/testnet-deploy.yaml +++ b/.github/workflows/testnet-deploy.yaml @@ -14,6 +14,7 @@ jobs: steps: - name: print run: echo ${GITHUB_REF#refs/heads/} + - name: Git Checkout Latest uses: actions/checkout@v2 diff --git a/pingpub.commit b/pingpub.commit new file mode 100644 index 00000000..743890ce --- /dev/null +++ b/pingpub.commit @@ -0,0 +1 @@ +a6691efb017acd4fe9b90431b7573043ce8b509b \ No newline at end of file