Skip to content

Publish to Chrome WebStore (Trusted Testers) #721

Publish to Chrome WebStore (Trusted Testers)

Publish to Chrome WebStore (Trusted Testers) #721

name: Publish to Chrome WebStore (Trusted Testers)
on:
schedule:
# Runs every day at midnight
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
steps:
- uses: actions/checkout@v4
with:
repository: ${{ github.event.pull_request.head.repo.full_name }}
ref: ${{ github.event.pull_request.head.ref }}
token: ${{ secrets.REPO_TOKEN }}
- name: Check for new commits
run: |
last_commit=$(git log -1 --pretty=%B)
if [[ "$last_commit" == *"Version Bump (Internal)"* ]]; then
echo "No new commits. Canceling publish..."
exit 1
fi
- uses: actions/setup-node@v4
with:
node-version: "20.16.0"
cache: 'yarn'
- name: Install deps via Yarn
run: yarn setup
- uses: actions/checkout@v4
with:
repository: 'rainbow-me/browser-extension-env'
token: ${{ secrets.DOTENV_GITHUB_ACCESS_TOKEN }}
path: tmp
- name: Copy dotenv
run: cat tmp/dotenv >> .env && rm -rf tmp
- name: Mark the build as internal
run: echo "INTERNAL_BUILD=true" >> .env
- name: Bump the version
run: yarn bump
- name: Fetch the current version number
run: echo "release_version=$(cat package.json | jq -r .version)" >> $GITHUB_ENV
- name: Build the extension ready for the stores
run: yarn build:webpack
- name: Update the manifest
run: yarn update-manifest internal
- name: Zip it
run: yarn zip
- name: Archive the build artifact
uses: actions/upload-artifact@v4
with:
name: rainbowbx-v${{ env.release_version }}
path: build/
- name: Submit to the chrome webstore
uses: PlasmoHQ/bpp@v3
with:
artifact: ./rainbowbx.zip
keys: ${{ secrets.BPP_KEYS_INTERNAL }}
- name: Commit changes
uses: EndBug/add-and-commit@v9
with:
message: Version Bump (Internal) - v${{ env.release_version }}
committer_name: GitHub Actions
committer_email: actions@github.com
add: '*.json'
- name: Create Sentry release
uses: getsentry/action-release@v1
env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
with:
environment: internal
finalize: true
sourcemaps: ./build
version: ${{ env.release_version }}
url_prefix: 'chrome-extension://kajddphdgkbiifcaichanbfjgmfaneem'