1
0
mirror of https://github.com/bitwarden/browser.git synced 2024-11-03 08:49:50 +01:00
bitwarden-browser/.github/workflows/release-browser.yml

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

143 lines
4.7 KiB
YAML
Raw Normal View History

---
name: Release Browser
2021-02-02 21:14:33 +01:00
on:
workflow_dispatch:
2021-12-20 19:10:52 +01:00
inputs:
release_type:
description: 'Release Options'
required: true
default: 'Initial Release'
type: choice
options:
- Initial Release
- Redeploy
2022-02-24 18:26:57 +01:00
- Dry Run
2021-02-02 21:14:33 +01:00
defaults:
run:
shell: bash
working-directory: apps/browser
2021-02-02 21:14:33 +01:00
jobs:
setup:
name: Setup
runs-on: ubuntu-20.04
2021-02-02 21:14:33 +01:00
outputs:
release-version: ${{ steps.version.outputs.package-version }}
branch-name: ${{ steps.branch.outputs.branch-name }}
2021-02-02 21:14:33 +01:00
steps:
- name: Branch check
2022-02-24 18:26:57 +01:00
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
run: |
if [[ "$GITHUB_REF" != "refs/heads/rc" ]] && [[ $GITHUB_REF != refs/heads/hotfix-rc/* ]]; then
echo "==================================="
echo "[!] Can only release from the 'rc' or 'hotfix-rc/*' branches"
echo "==================================="
exit 1
fi
2021-02-02 21:14:33 +01:00
- name: Checkout repo
2022-02-24 18:26:57 +01:00
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
2021-02-02 21:14:33 +01:00
- name: Check Release Version
id: version
2021-02-02 21:14:33 +01:00
run: |
version=$( jq -r ".version" src/manifest.json)
previous_release_tag_version=$(
curl -sL https://api.github.com/repos/$GITHUB_REPOSITORY/releases | jq -r 'first(.[] | select(.tag_name | startswith("browser"))).tag_name'
)
2021-02-02 21:14:33 +01:00
2021-12-20 19:10:52 +01:00
if [ "v$version" == "$previous_release_tag_version" ] && \
[ "${{ github.event.inputs.release_type }}" == "Initial Release" ]; then
echo "[!] Already released v$version. Please bump version to continue"
exit 1
fi
2021-02-02 22:27:15 +01:00
echo "::set-output name=package-version::$version"
2021-02-02 21:14:33 +01:00
- name: Get branch name
id: branch
run: |
BRANCH_NAME=$(basename ${{ github.ref }})
echo "::set-output name=branch-name::$BRANCH_NAME"
2021-02-02 21:14:33 +01:00
locales-test:
name: Locales Test
runs-on: ubuntu-20.04
2021-02-02 21:14:33 +01:00
needs: setup
steps:
- name: Checkout repo
2022-02-24 18:26:57 +01:00
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
2021-02-02 21:14:33 +01:00
- name: Testing locales - extName length
run: |
found_error=false
echo "Locales Test"
echo "============"
echo "extName string must be 40 characters or less"
echo
for locale in $(ls src/_locales/); do
string_length=$(jq '.extName.message | length' src/_locales/$locale/messages.json)
if [[ $string_length -gt 40 ]]; then
echo "$locale: $string_length"
found_error=true
fi
done
if $found_error; then
echo
echo "Please fix 'extName' for the locales listed above."
exit 1
else
echo "Test passed!"
fi
release:
name: Create GitHub Release
runs-on: ubuntu-20.04
needs:
- setup
- locales-test
steps:
- name: Download latest RC build artifacts
uses: bitwarden/gh-actions/download-artifacts@c1fa8e09871a860862d6bbe36184b06d2c7e35a8
with:
workflow: build-browser.yml
workflow_conclusion: success
branch: ${{ needs.setup.outputs.branch-name }}
artifacts: 'browser-source-*.zip,
dist-chrome-*.zip,
dist-opera-*.zip,
dist-firefox-*.zip,
dist-edge-*.zip'
- name: Rename build artifacts
env:
PACKAGE_VERSION: ${{ needs.setup.outputs.release-version }}
2021-05-26 22:34:31 +02:00
run: |
mv browser-source.zip browser-source-$PACKAGE_VERSION.zip
mv dist-chrome.zip dist-chrome-$PACKAGE_VERSION.zip
mv dist-opera.zip dist-opera-$PACKAGE_VERSION.zip
mv dist-firefox.zip dist-firefox-$PACKAGE_VERSION.zip
mv dist-edge.zip dist-edge-$PACKAGE_VERSION.zip
2021-05-26 22:34:31 +02:00
- name: Create release
2022-02-24 18:26:57 +01:00
if: ${{ github.event.inputs.release_type != 'Dry Run' }}
uses: ncipollo/release-action@40bb172bd05f266cf9ba4ff965cb61e9ee5f6d01
2021-02-02 21:14:33 +01:00
with:
artifacts: 'browser-source-${{ needs.setup.outputs.release-version }}.zip,
dist-chrome-${{ needs.setup.outputs.release-version }}.zip,
dist-opera-${{ needs.setup.outputs.release-version }}.zip,
dist-firefox-${{ needs.setup.outputs.release-version }}.zip,
dist-edge-${{ needs.setup.outputs.release-version }}.zip'
commit: ${{ github.sha }}
tag: "browser-v${{ needs.setup.outputs.release-version }}"
name: "Browser v${{ needs.setup.outputs.release-version }}"
body: "<insert release notes here>"
token: ${{ secrets.GITHUB_TOKEN }}
draft: true