Skip to content

Commit

Permalink
Merge branch 'dev' into recovery-epic
Browse files Browse the repository at this point in the history
  • Loading branch information
iamacook committed Nov 23, 2023
2 parents 2a3ad26 + 228bd2b commit 5bc67bc
Show file tree
Hide file tree
Showing 172 changed files with 5,586 additions and 5,972 deletions.
3 changes: 1 addition & 2 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Infura token (required)
## Infura token
NEXT_PUBLIC_INFURA_TOKEN=
NEXT_PUBLIC_SAFE_APPS_INFURA_TOKEN=

Expand All @@ -22,7 +22,6 @@ NEXT_PUBLIC_SENTRY_DSN=
NEXT_PUBLIC_BEAMER_ID=

# Wallet-specific variables
NEXT_PUBLIC_WC_BRIDGE=
NEXT_PUBLIC_WC_PROJECT_ID=

# E2E tests
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/build/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,4 @@ runs:
NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_OPTIONS_STAGING }}
NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_VAPID_KEY_PRODUCTION }}
NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_FIREBASE_VAPID_KEY_STAGING }}
NEXT_PUBLIC_SPINDL_SDK_KEY: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_SPINDL_SDK_KEY }}
57 changes: 57 additions & 0 deletions .github/workflows/cypress/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: 'Cypress'

description: 'Run Cypress'

inputs:
secrets:
description: 'GitHub secrets as JSON'
required: true

spec:
description: 'A glob pattern for which tests to run'
required: true

group:
description: 'The name of the group (e.g. "smoke")'
required: true

project_id:
description: 'Cypress cloud project id'
required: false

record_key:
description: 'Cypress cloud record key'
required: false

runs:
using: 'composite'
steps:
- uses: browser-actions/setup-chrome@v1

- uses: ./.github/workflows/yarn

- name: Install Cypress
shell: bash
run: ./node_modules/.bin/cypress install

- uses: ./.github/workflows/build
with:
secrets: ${{ inputs.secrets }}
e2e_mnemonic: ${{ fromJSON(inputs.secrets).NEXT_PUBLIC_CYPRESS_MNEMONIC }}

- name: Serve
shell: bash
run: yarn serve &

- uses: cypress-io/github-action@v4
with:
spec: ${{ inputs.spec }}
group: ${{ inputs.group }}
parallel: true
browser: chrome
record: true
config: baseUrl=http://localhost:8080
env:
CYPRESS_RECORD_KEY: ${{ inputs.record_key || fromJSON(inputs.secrets).CYPRESS_RECORD_KEY }}
GITHUB_TOKEN: ${{ fromJSON(inputs.secrets).GITHUB_TOKEN }}
CYPRESS_PROJECT_ID: ${{ inputs.project_id }}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ jobs:
- uses: ./.github/workflows/build
with:
secrets: ${{ toJSON(secrets) }}
prod: ${{ github.ref == 'refs/heads/main' }}

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
Expand Down
55 changes: 40 additions & 15 deletions .github/workflows/deploy-dockerhub.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,50 @@ on:
jobs:
dockerhub-push:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/dev' || (github.event_name == 'release' && github.event.action == 'released')
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- uses: docker/setup-buildx-action@v3
- name: Dockerhub login
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Deploy Dockerhub main
- name: Deploy Main
if: github.ref == 'refs/heads/main'
run: bash scripts/github/deploy_docker.sh staging
env:
DOCKERHUB_PROJECT: ${{ secrets.DOCKER_PROJECT }}
- name: Deploy Dockerhub dev
uses: docker/build-push-action@v5
with:
push: true
tags: safeglobal/safe-wallet-web:staging
platforms: |
linux/amd64
linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Deploy Develop
if: github.ref == 'refs/heads/dev'
run: bash scripts/github/deploy_docker.sh dev
env:
DOCKERHUB_PROJECT: ${{ secrets.DOCKER_PROJECT }}
- name: Deploy Dockerhub tag
if: startsWith(github.ref, 'refs/tags/')
run: bash scripts/github/deploy_docker.sh ${GITHUB_REF##*/}
env:
DOCKERHUB_PROJECT: ${{ secrets.DOCKER_PROJECT }}
uses: docker/build-push-action@v5
with:
push: true
tags: safeglobal/safe-wallet-web:dev
platforms: |
linux/amd64
linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Deploy Tag
if: (github.event_name == 'release' && github.event.action == 'released')
uses: docker/build-push-action@v5
with:
push: true
tags: |
safeglobal/safe-wallet-web:${{ github.event.release.tag_name }}
safeglobal/safe-wallet-web:latest
platforms: |
linux/amd64
linux/arm64
cache-from: type=gha
cache-to: type=gha,mode=max
File renamed without changes.
48 changes: 48 additions & 0 deletions .github/workflows/e2e-ondemand.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Regression on demand tests

on:
workflow_dispatch:
schedule:
- cron: '0 4 * * 1-5'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
e2e:
runs-on: ubuntu-20.04
name: Cypress Regression on demand tests
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v3

- uses: ./.github/workflows/cypress
with:
command: npx cypress run --reporter "junit" --reporter-options "mochaFile=reports/junit-[hash].xml,testsuitesTitle=Root Suite"
secrets: ${{ toJSON(secrets) }}
spec: cypress/e2e/**/*.cy.js
group: 'Regression on demand tests'

- name: Python setup
if: always()
uses: actions/setup-python@v3
with:
python-version: '3.x'

- name: TestRail CLI upload results
if: always()
run: |
pip install trcli
trcli -y \
-h https://gno.testrail.io/ \
--project "Safe- Web App" \
--username ${{ secrets.TESTRAIL_USERNAME }} \
--password ${{ secrets.TESTRAIL_PASSWORD }} \
parse_junit \
--title "Automated Tests, branch: ${GITHUB_REF_NAME}" \
--run-description ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} \
-f "reports/junit*.xml"
28 changes: 28 additions & 0 deletions .github/workflows/e2e-regression.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Regression tests

on:
pull_request:
branches:
- 'release**'
- 'release/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
e2e:
runs-on: ubuntu-20.04
name: Cypress Regression tests
strategy:
fail-fast: false
matrix:
containers: [1, 2, 3]
steps:
- uses: actions/checkout@v3

- uses: ./.github/workflows/cypress
with:
secrets: ${{ toJSON(secrets) }}
spec: cypress/e2e/**/*.cy.js
group: 'Regression tests'
29 changes: 29 additions & 0 deletions .github/workflows/e2e-safe-apps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Safe Apps e2e

on:
pull_request:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
e2e:
runs-on: ubuntu-latest
name: Cypress Safe Apps tests
strategy:
fail-fast: false
matrix:
containers: [1, 2]
steps:
- uses: actions/checkout@v3

- uses: ./.github/workflows/cypress
with:
secrets: ${{ toJSON(secrets) }}
spec: cypress/e2e/safe-apps/*.cy.js
group: 'Safe Apps tests'
project_id: okn21k
record_key: ${{ secrets.CYPRESS_SAFE_APPS_RECORD_KEY }}

27 changes: 27 additions & 0 deletions .github/workflows/e2e-smoke.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Smoke tests

on:
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
e2e:
runs-on: ubuntu-20.04
name: Cypress Smoke tests

strategy:
fail-fast: false
matrix:
containers: [1, 2, 3, 4, 5]

steps:
- uses: actions/checkout@v3

- uses: ./.github/workflows/cypress
with:
secrets: ${{ toJSON(secrets) }}
spec: cypress/e2e/smoke/*.cy.js
group: 'Smoke tests'
45 changes: 0 additions & 45 deletions .github/workflows/e2e.yml

This file was deleted.

65 changes: 65 additions & 0 deletions .github/workflows/nextjs-bundle-analysis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0

name: 'Next.js Bundle Analysis'

on:
pull_request:
push:
branches:
- dev

permissions:
contents: read # for checkout repository
actions: read # for fetching base branch bundle stats
pull-requests: write # for comments

jobs:
analyze:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3

- name: Install dependencies
uses: ./.github/workflows/yarn

- name: Build next.js app
uses: ./.github/workflows/build
with:
secrets: ${{ toJSON(secrets) }}

- name: Analyze bundle
run: npx -p nextjs-bundle-analysis report

- name: Upload bundle
uses: actions/upload-artifact@v3
with:
name: bundle
path: .next/analyze/__bundle_analysis.json

- name: Download base branch bundle stats
uses: dawidd6/action-download-artifact@v2
if: success() && github.event.number
with:
workflow: nextjs_bundle_analysis.yml
branch: ${{ github.event.pull_request.base.ref }}
path: .next/analyze/base

- name: Compare with base branch bundle
if: success() && github.event.number
run: ls -laR .next/analyze/base && npx -p nextjs-bundle-analysis compare

- name: Get Comment Body
id: get-comment-body
if: success() && github.event.number
# https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
run: |
echo "body<<EOF" >> $GITHUB_OUTPUT
echo "$(cat .next/analyze/__bundle_analysis_comment.txt)" >> $GITHUB_OUTPUT
echo EOF >> $GITHUB_OUTPUT
- name: Comment
uses: marocchino/sticky-pull-request-comment@v2
with:
header: next-bundle-analysis
message: ${{ steps.get-comment-body.outputs.body }}
Loading

0 comments on commit 5bc67bc

Please sign in to comment.