This repository has been archived by the owner on Apr 12, 2024. It is now read-only.
chore: update yarn #640
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: | |
- master | |
- unstable | |
pull_request: | |
branches: | |
- '**' | |
env: | |
METAMASK_CACHE_PATH: 'node_modules/.cache/.metamask' | |
jobs: | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Activate corepack | |
run: corepack enable | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install deps | |
run: yarn --immutable | |
- name: Build | |
run: yarn build | |
download: | |
needs: build | |
name: 'Download Metamask extension' | |
runs-on: ubuntu-latest | |
steps: | |
- name: Activate corepack | |
run: corepack enable | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install deps | |
run: yarn --immutable | |
- name: Download metamask | |
run: yarn run download:metamask | |
- uses: actions/cache/save@v3 | |
with: | |
path: ${{env.METAMASK_CACHE_PATH}} | |
key: metamask-extension | |
lint: | |
needs: build | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Activate corepack | |
run: corepack enable | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install deps | |
run: yarn --immutable | |
- name: Lint | |
run: yarn run lint | |
tests: | |
needs: [ build, download ] | |
name: Tests | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
mm-version: [ mm, flask ] | |
automation: [ playwright, puppeteer ] | |
steps: | |
- name: Activate corepack | |
run: corepack enable | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- uses: actions/cache/restore@v3 | |
with: | |
path: ${{env.METAMASK_CACHE_PATH}} | |
key: metamask-extension | |
- name: Install | |
run: yarn --immutable | |
- name: Tests | |
run: 'yarn run test:${{matrix.automation}}:${{ matrix.mm-version }} --timeout 50000' | |
- uses: actions/upload-artifact@v3 | |
if: always() | |
with: | |
name: debug_screenshots | |
path: ./*.png | |
tests-user-data: | |
name: Tests UserData | |
runs-on: ubuntu-latest | |
needs: [ tests, download ] | |
strategy: | |
fail-fast: false | |
matrix: | |
automation: [ playwright, puppeteer ] | |
steps: | |
- run: corepack enable | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: "18" | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- uses: actions/cache/restore@v3 | |
with: | |
path: ${{env.METAMASK_CACHE_PATH}} | |
key: metamask-extension | |
- name: Install | |
run: yarn --immutable | |
- name: Tests UserData | |
run: 'yarn run test:${{matrix.automation}}:userData --timeout 240000' | |
maybe-release: | |
name: release | |
runs-on: ubuntu-latest | |
needs: [ tests, lint, build, tests-user-data ] | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
steps: | |
- uses: google-github-actions/release-please-action@v3 # it will analyze commits and create PR with new version and updated CHANGELOG:md file. On merging it will create github release page with changelog | |
id: release | |
with: | |
release-type: node | |
package-name: release-please-action | |
changelog-types: '[{"type":"feat","section":"Features","hidden":false},{"type":"fix","section":"Bug Fixes","hidden":false},{"type":"chore","section":"Miscellaneous","hidden":true}]' | |
- uses: actions/checkout@v4 | |
if: ${{ steps.release.outputs.release_created }} | |
- name: Activate corepack | |
run: corepack enable | |
- uses: actions/setup-node@v4 | |
with: | |
cache: 'yarn' | |
node-version: "18" | |
registry-url: 'https://registry.npmjs.org' | |
if: ${{ steps.release.outputs.release_created }} | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- name: Cache yarn cache | |
uses: actions/cache@v2 | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- run: yarn --immutable | |
if: ${{ steps.release.outputs.release_created }} | |
- run: yarn build | |
if: ${{ steps.release.outputs.release_created }} | |
- run: | | |
echo npmAuthToken: "$NODE_AUTH_TOKEN" >> ./.yarnrc.yml | |
env: | |
NODE_AUTH_TOKEN: ${{secrets.NPM_AUTH_TOKEN}} | |
if: ${{ steps.release.outputs.release_created }} | |
- run: yarn npm publish --access public | |
if: ${{ steps.release.outputs.release_created }} |