Update Build Web workflow to only run on published Web releases. Removed migrated Staged Rollout Desktop workflow. (#20761)

This commit is contained in:
Vince Grassia 2026-05-21 10:05:07 -04:00 committed by GitHub
parent 06da95f756
commit 72eeec6255
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 96 deletions

View File

@ -56,8 +56,31 @@ permissions:
contents: read
jobs:
check-release-tag:
name: Check release tag
if: github.event_name == 'release'
runs-on: ubuntu-24.04
steps:
- name: Check tag
env:
TAG_NAME: ${{ github.event.release.tag_name }}
run: |
if [[ "$TAG_NAME" == web-v* ]]; then
echo "### ✅ Web release detected" >> "$GITHUB_STEP_SUMMARY"
echo "Tag \`$TAG_NAME\` matches \`web-v*\`. Proceeding with build." >> "$GITHUB_STEP_SUMMARY"
else
echo "### ⏭️ Build skipped" >> "$GITHUB_STEP_SUMMARY"
echo "Tag \`$TAG_NAME\` does not match \`web-v*\`. This release is not for Web, skipping." >> "$GITHUB_STEP_SUMMARY"
fi
setup:
name: Setup
needs: check-release-tag
if: |
always()
&& (needs.check-release-tag.result == 'skipped'
|| (needs.check-release-tag.result == 'success'
&& startsWith(github.event.release.tag_name, 'web-v')))
runs-on: ubuntu-24.04
outputs:
version: ${{ steps.version.outputs.value }}

View File

@ -1,96 +0,0 @@
name: Staged Rollout Desktop
run-name: Staged Rollout Desktop - ${{ inputs.rollout_percentage }}%
on:
workflow_dispatch:
inputs:
rollout_percentage:
description: 'Staged Rollout Percentage'
required: true
default: '10'
type: string
defaults:
run:
shell: bash
jobs:
rollout:
name: Update Rollout Percentage
runs-on: ubuntu-22.04
permissions:
id-token: write
steps:
- name: Log in to Azure
uses: bitwarden/gh-actions/azure-login@main
with:
subscription_id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
tenant_id: ${{ secrets.AZURE_TENANT_ID }}
client_id: ${{ secrets.AZURE_CLIENT_ID }}
- name: Retrieve secrets
id: retrieve-secrets
uses: bitwarden/gh-actions/get-keyvault-secrets@main
with:
keyvault: "bitwarden-ci"
secrets: "aws-electron-access-id,
aws-electron-access-key,
aws-electron-bucket-name"
- name: Log out from Azure
uses: bitwarden/gh-actions/azure-logout@main
- name: Download channel update info files from S3
env:
AWS_ACCESS_KEY_ID: ${{ steps.retrieve-secrets.outputs.aws-electron-access-id }}
AWS_SECRET_ACCESS_KEY: ${{ steps.retrieve-secrets.outputs.aws-electron-access-key }}
AWS_DEFAULT_REGION: 'us-west-2'
AWS_S3_BUCKET_NAME: ${{ steps.retrieve-secrets.outputs.aws-electron-bucket-name }}
run: |
aws s3 cp "$AWS_S3_BUCKET_NAME/desktop/latest.yml" . \
--quiet
aws s3 cp "$AWS_S3_BUCKET_NAME/desktop/latest-linux.yml" . \
--quiet
aws s3 cp "$AWS_S3_BUCKET_NAME/desktop/latest-mac.yml" . \
--quiet
- name: Check new rollout percentage
env:
NEW_PCT: ${{ github.event.inputs.rollout_percentage }}
run: |
CURRENT_PCT=$(sed -r -n "s/stagingPercentage:\s([0-9]+)/\1/p" latest.yml)
echo "Current percentage: ${CURRENT_PCT}"
echo "New percentage: ${NEW_PCT}"
echo
if [ "$NEW_PCT" -le "$CURRENT_PCT" ]; then
echo "New percentage (${NEW_PCT}) must be higher than current percentage (${CURRENT_PCT})!"
echo
echo "If you want to pull a staged release because it hasnt gone well, you must increment the version \
number higher than your broken release. Because some of your users will be on the broken 1.0.1, \
releasing a new 1.0.1 would result in them staying on a broken version."
exit 1
fi
- name: Set staged rollout percentage
env:
ROLLOUT_PCT: ${{ github.event.inputs.rollout_percentage }}
run: |
sed -i -r "/stagingPercentage/s/[0-9]+/${ROLLOUT_PCT}/" latest.yml
sed -i -r "/stagingPercentage/s/[0-9]+/${ROLLOUT_PCT}/" latest-linux.yml
sed -i -r "/stagingPercentage/s/[0-9]+/${ROLLOUT_PCT}/" latest-mac.yml
- name: Publish channel update info files to S3
env:
AWS_ACCESS_KEY_ID: ${{ steps.retrieve-secrets.outputs.aws-electron-access-id }}
AWS_SECRET_ACCESS_KEY: ${{ steps.retrieve-secrets.outputs.aws-electron-access-key }}
AWS_DEFAULT_REGION: 'us-west-2'
AWS_S3_BUCKET_NAME: ${{ steps.retrieve-secrets.outputs.aws-electron-bucket-name }}
run: |
aws s3 cp latest.yml "$AWS_S3_BUCKET_NAME/desktop/" \
--acl "public-read"
aws s3 cp latest-linux.yml "$AWS_S3_BUCKET_NAME/desktop/" \
--acl "public-read"
aws s3 cp latest-mac.yml "$AWS_S3_BUCKET_NAME/desktop/" \
--acl "public-read"