Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 1.23.0 #2846

Merged
28 commits merged into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
b356d75
Tests: Add test IDs and modify NFT tests (#2804)
mike10ca Nov 14, 2023
34f1bae
chore: Analyze NextJS bundle size action (#2803)
usame-algan Nov 14, 2023
a272500
fix: Lazy load mpc core kit (#2808)
usame-algan Nov 14, 2023
3598c18
Tests: Cypress seedless google flow (#2812)
mike10ca Nov 15, 2023
0b7d378
Revert Dockerfile optimization (#2817)
Uxio0 Nov 16, 2023
9727a41
Chore: prod build on staging (main) (#2809)
katspaugh Nov 20, 2023
ac480ec
fix: Update to new recommended nonce endpoint (#2737)
usame-algan Nov 20, 2023
0b5939c
Fix: WC verification wording (#2798)
katspaugh Nov 20, 2023
4cd3f3c
Tests: Cypress tests imrpovements (#2816)
mike10ca Nov 20, 2023
4a78e00
Fix: separate WalletConnect storage (#2793)
katspaugh Nov 20, 2023
d019012
Fix: remove deprecated mobile pairing (#2794)
katspaugh Nov 20, 2023
82b0848
Fix: add help link in footer (#2822)
katspaugh Nov 20, 2023
09a88f6
Fix: double scroll bar in safe apps (#2829)
katspaugh Nov 21, 2023
edc627a
Fix: delay the notifications banner (#2823)
katspaugh Nov 21, 2023
985ccd7
fix: Add loading icons to buttons (#2828)
francovenica Nov 21, 2023
0c367d2
Chore: replace ts-node with tsx (#2845)
katspaugh Nov 21, 2023
21002ad
Analytics: track wallet address (#2841)
katspaugh Nov 22, 2023
9a7978c
Analytics: update Privacy policy for Spindl + refactor legal pages (#…
katspaugh Nov 22, 2023
8a216e0
Analytics: track tx creations and safe views (#2787)
katspaugh Nov 22, 2023
76484af
Tests: Add Chrome version to smoke tests workflow (#2826)
mike10ca Nov 22, 2023
d81cd0c
Analytics: add Spindl (#2842)
katspaugh Nov 22, 2023
5cfb854
v1.23.0
katspaugh Nov 22, 2023
56fe78e
Chore: fix ARM64 docker image build (#2847)
Uxio0 Nov 22, 2023
14570dd
Analytics: add a Confirm transaction event (#2849)
katspaugh Nov 23, 2023
5ff9855
Tests: Add tests schedule (#2857)
mike10ca Nov 23, 2023
68ee9b1
Chore: reorganize CI workflow files (#2854)
katspaugh Nov 23, 2023
0d20217
Tests: Add TestRail integration to CI (#2860)
mike10ca Nov 23, 2023
d06ff30
Fix: tracking onchain signatures condition
katspaugh Nov 23, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
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:/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
Loading