From d6b5d892a868b01df8dca63044eac164e4c49889 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:42:44 +0100 Subject: [PATCH] bump transaction service with deterministic deployment stuff --- .github/workflows/build-boba.yml | 49 -------- .github/workflows/cla.yml | 26 ---- .github/workflows/deploy-arbitrum.yml | 146 ---------------------- .github/workflows/deploy-bsc.yml | 148 ---------------------- .github/workflows/deploy-ewc.yml | 148 ---------------------- .github/workflows/deploy-mainnet.yml | 152 ---------------------- .github/workflows/deploy-polygon.yml | 144 --------------------- .github/workflows/deploy-rinkeby.yml | 173 -------------------------- .github/workflows/deploy-volta.yml | 147 ---------------------- .github/workflows/deploy-xdai.yml | 148 ---------------------- boba_ops/safe-transaction-service | 2 +- 11 files changed, 1 insertion(+), 1282 deletions(-) delete mode 100644 .github/workflows/cla.yml delete mode 100644 .github/workflows/deploy-arbitrum.yml delete mode 100644 .github/workflows/deploy-bsc.yml delete mode 100644 .github/workflows/deploy-ewc.yml delete mode 100644 .github/workflows/deploy-mainnet.yml delete mode 100644 .github/workflows/deploy-polygon.yml delete mode 100644 .github/workflows/deploy-rinkeby.yml delete mode 100644 .github/workflows/deploy-volta.yml delete mode 100644 .github/workflows/deploy-xdai.yml diff --git a/.github/workflows/build-boba.yml b/.github/workflows/build-boba.yml index c9a978fba5..c7cef7f654 100644 --- a/.github/workflows/build-boba.yml +++ b/.github/workflows/build-boba.yml @@ -7,34 +7,7 @@ on: jobs: - start-runner: - name: Start self-hosted EC2 runner - runs-on: ubuntu-latest - outputs: - label: ${{ steps.start-ec2-runner.outputs.label }} - ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Start EC2 runner - id: start-ec2-runner - uses: machulav/ec2-github-runner@v2 - with: - mode: start - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - ec2-image-id: ami-00b46fa1102c70ff2 - ec2-instance-type: t2.xlarge - subnet-id: subnet-905870ae - security-group-id: sg-0855631d714870b32 - build-publish-win: - needs: start-runner - runs-on: ${{ needs.start-runner.outputs.label }} - steps: - name: Login to Docker Hub uses: docker/login-action@v1 @@ -79,25 +52,3 @@ jobs: echo "$1" docker push "$i" done - - stop-runner: - name: Stop self-hosted EC2 runner - needs: - - start-runner # required to get output from the start-runner job - - build-publish-win # required to wait when the main job is done - runs-on: ubuntu-latest - if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Stop EC2 runner - uses: machulav/ec2-github-runner@v2 - with: - mode: stop - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - label: ${{ needs.start-runner.outputs.label }} - ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml deleted file mode 100644 index fa2f29e07f..0000000000 --- a/.github/workflows/cla.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: 'CLA Assistant' -on: - issue_comment: - types: [created] - pull_request_target: - types: [opened, closed, synchronize] - -jobs: - CLAssistant: - runs-on: ubuntu-latest - steps: - - name: 'CLA Assistant' - if: (github.event.comment.body == 'recheckcla' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' - # Alpha Release - uses: gnosis/github-action@master - # GitHub token, automatically provided to the action - # (No need to define this secret in the repo settings) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - path-to-signatures: 'signatures/version1/cla.json' - path-to-cla-document: 'https://github.com/gnosis/safe-react/blob/main/GNOSISCLA.md' - branch: 'cla-signatures' - allowlist: lukasschor,mikheevm,rmeissner,germartinez,davidalbela,Uxio0,dasanra,francovenica,tschubotz,luarx,giacomolicari,gnosis-info,bot*,katspaugh,DaniSomoza,iamacook,yagopv - empty-commit-flag: false - blockchain-storage-flag: false diff --git a/.github/workflows/deploy-arbitrum.yml b/.github/workflows/deploy-arbitrum.yml deleted file mode 100644 index 7dd0e8dee2..0000000000 --- a/.github/workflows/deploy-arbitrum.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: Deploy to Arbitrum network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'arbitrum' - REACT_APP_LATEST_SAFE_VERSION: '1.3.0' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_ARBITRUM_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_ARBITRUM }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_ARBITRUM }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Arbitrum build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-bsc.yml b/.github/workflows/deploy-bsc.yml deleted file mode 100644 index 55fb904ffb..0000000000 --- a/.github/workflows/deploy-bsc.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Deploy to Binance smart chain - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'bsc' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_BSC_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_BSC }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_BSC }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to development environment - # xDai build is never created in development branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-ewc.yml b/.github/workflows/deploy-ewc.yml deleted file mode 100644 index e9c77ede8a..0000000000 --- a/.github/workflows/deploy-ewc.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Deploy to EWC network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'energy_web_chain' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_EWC_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_EWC }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_EWC }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # EWC build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-mainnet.yml b/.github/workflows/deploy-mainnet.yml deleted file mode 100644 index 54b192f95b..0000000000 --- a/.github/workflows/deploy-mainnet.yml +++ /dev/null @@ -1,152 +0,0 @@ -name: Deploy to Mainnet network - -# Run on pushes to main or PRs -on: - # Pull request hook without any config. Launches for every pull request - pull_request: - push: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'mainnet' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_MAINNET_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_MAINNET }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_MAINNET }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - REACT_APP_ETHERSCAN_API_KEY: ${{ secrets.REACT_APP_ETHERSCAN_API_KEY }} - REACT_APP_ETHGASSTATION_API_KEY: ${{ secrets.REACT_APP_ETHGASSTATION_API_KEY }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - TRAVIS_TAG: ${{ github.event.release.tag_name }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Mainnet build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' # Or refs/heads/main - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-polygon.yml b/.github/workflows/deploy-polygon.yml deleted file mode 100644 index 306847229e..0000000000 --- a/.github/workflows/deploy-polygon.yml +++ /dev/null @@ -1,144 +0,0 @@ -name: Deploy to Polygon network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'polygon' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_POLYGON_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_POLYGON }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_POLYGON }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Polygon build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-rinkeby.yml b/.github/workflows/deploy-rinkeby.yml deleted file mode 100644 index 04ee381447..0000000000 --- a/.github/workflows/deploy-rinkeby.yml +++ /dev/null @@ -1,173 +0,0 @@ -name: Deploy to Rinkeby network - -# Run on pushes to dev/main or PR -on: - # Pull request hook without any config. Launches for every pull request - pull_request: - # Launches for pushes to main or dev - push: - branches: - - main - - dev - # Launches build when release is published - release: - types: [published] - workflow_dispatch: - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'rinkeby' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_RINKEBY_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_RINKEBY }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_RINKEBY }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - REACT_APP_ETHERSCAN_API_KEY: ${{ secrets.REACT_APP_ETHERSCAN_API_KEY }} - REACT_APP_ETHGASSTATION_API_KEY: ${{ secrets.REACT_APP_ETHGASSTATION_API_KEY }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app ${{ env.REACT_APP_ENV }} - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - TRAVIS_TAG: ${{ github.event.release.tag_name }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to notify production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} - e2e: - name: Trigger e2e tests - if: success() && github.ref == 'refs/heads/dev' - runs-on: ubuntu-latest - steps: - - name: Repository Dispatch - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.E2E_RUN_HOOK_ACCESS_TOKEN }} - repository: gnosis/safe-react-e2e-tests - event-type: run-e2e-from-safe-react - e2ePR: - name: Trigger e2e tests on pr - if: github.event.number - needs: deploy - runs-on: ubuntu-latest - steps: - - name: Repository Dispatch - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.E2E_RUN_HOOK_ACCESS_TOKEN }} - repository: gnosis/safe-react-e2e-tests - event-type: run-e2e-tests-from-safe-react-on-pr - client-payload: '{"pr_number": "${{ github.event.number }}"}' diff --git a/.github/workflows/deploy-volta.yml b/.github/workflows/deploy-volta.yml deleted file mode 100644 index 0fdaa860cd..0000000000 --- a/.github/workflows/deploy-volta.yml +++ /dev/null @@ -1,147 +0,0 @@ -name: Deploy to Volta network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'volta' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_VOLTA_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_VOLTA }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_VOLTA }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Volta build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-xdai.yml b/.github/workflows/deploy-xdai.yml deleted file mode 100644 index 2eef022c8e..0000000000 --- a/.github/workflows/deploy-xdai.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Deploy to xDai network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'xdai' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_XDAI_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_XDAI }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_XDAI }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # xDai build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service index 081aebdee7..5b380d1ef0 160000 --- a/boba_ops/safe-transaction-service +++ b/boba_ops/safe-transaction-service @@ -1 +1 @@ -Subproject commit 081aebdee750fadff22ad734e6e7481ee0feff8d +Subproject commit 5b380d1ef0a92a286bcece7d39e9e64f371b0e74