Skip to content

chore(release): 6.7.0 #467

chore(release): 6.7.0

chore(release): 6.7.0 #467

name: Publish Extensions
on:
push:
tags-ignore:
- 'v*beta*'
workflow_dispatch:
env:
COINBASE_APP_ID: ${{ secrets.COINBASE_APP_ID }}
MOONPAY_API_KEY: ${{ secrets.MOONPAY_API_KEY }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
SEGMENT_WRITE_KEY: ${{ secrets.SEGMENT_WRITE_KEY }}
TRANSAK_API_KEY: ${{ secrets.TRANSAK_API_KEY }}
WALLET_ENVIRONMENT: production
IS_PUBLISHING: true
jobs:
pre-run:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@ad6cb1b847ffb509a69b745b6ee2f1d14dfe14b8
with:
access_token: ${{ github.token }}
build-extension:
runs-on: ubuntu-latest
outputs:
new_version: ${{ steps.extract_version.outputs.version }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/provision
- name: Extract version
id: extract_version
uses: Saionaro/extract-package-version@v1.1.1
- name: Print version
run: echo ${{ steps.extract_version.outputs.version }}
- name: Build project
run: yarn build
- uses: actions/upload-artifact@v3
name: Upload build artifact
with:
name: leather-wallet
path: dist
create-github-release:
name: Create Github release
runs-on: ubuntu-latest
needs:
- build-extension
steps:
- name: Download extension build
uses: actions/download-artifact@v2
with:
path: .
- name: Download release-notes.txt from create-version workflow
uses: dawidd6/action-download-artifact@v2
with:
workflow: create-version.yml
name: release-notes
- run: ls -R
- name: Zip release build
run: zip -r leather-wallet.v${{ needs.build-extension.outputs.new_version }}.zip leather-wallet/
- name: Release
uses: softprops/action-gh-release@v1
with:
prerelease: false
tag_name: v${{ needs.build-extension.outputs.new_version }}
body_path: release-notes.txt
files: leather-wallet.v${{ needs.build-extension.outputs.new_version }}.zip
publish_chrome_extension:
name: Publish Chrome extension
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
needs:
- pre-run
- create-github-release
outputs:
publish_status: ${{ steps.publish-chrome.outputs.publish_status }}
env:
MINIFY_PRODUCTION_BUILD: false
TARGET_BROWSER: chromium
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/provision
- name: Build project
env:
# We only add the sentry auth token for chrome, as we don't want to
# create a duplicate release during the ff build
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
run: yarn build
- uses: actions/upload-artifact@v3
name: Upload build artifact
with:
name: leather-wallet-chrome
path: dist
- name: Build extension
run: sh build-ext.sh
- name: Sign and Upload Production Chrome extension
continue-on-error: true
id: publish-chrome
run: |
yarn chrome-webstore-upload upload --auto-publish --source leather-chromium.zip
echo "::set-output name=publish_status::${?}"
env:
EXTENSION_ID: ${{ secrets.CHROME_APP_ID }}
CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}
publish_firefox_extension:
name: Publish Firefox extension
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
env:
MINIFY_PRODUCTION_BUILD: true
TARGET_BROWSER: firefox
needs:
- pre-run
- create-github-release
outputs:
publish_status: ${{ steps.publish-firefox.outputs.publish_status }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/provision
- name: Build project
run: yarn build
- uses: actions/upload-artifact@v3
name: Upload build artifact
with:
name: leather-wallet-firefox
path: dist
- name: Put generated manifest.json in ./src
run: cp dist/manifest.json src/manifest.json
- name: Build extension
run: sh build-ext.sh
- name: Sign and Upload Production Firefox extension
continue-on-error: true
id: publish-firefox
run: |
yarn web-ext-submit --channel=listed -source-dir=dist
echo "::set-output name=publish_status::${?}"
env:
WEB_EXT_API_KEY: ${{ secrets.FIREFOX_API_KEY }}
WEB_EXT_API_SECRET: ${{ secrets.FIREFOX_API_SECRET }}
post_run:
runs-on: ubuntu-latest
needs:
- publish_chrome_extension
- publish_firefox_extension
steps:
- name: Publish Statuses
run: |
echo "::warning::Firefox Publish Status: $([[ "${{ needs.publish_firefox_extension.outputs.publish_status }}" = "0" ]] && echo 'SUCCESS' || echo 'FAILED')"
echo "::warning::Chrome Publish Status: $([[ "${{ needs.publish_chrome_extension.outputs.publish_status }}" = "0" ]] && echo 'SUCCESS' || echo 'FAILED')"