Skip to content

Create Release

Create Release #97

Workflow file for this run

name: Release & Deploy
on:
schedule:
- cron: '30 0 * * *'
workflow_dispatch:
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
with:
ref: main
- name: Semver Info
id: semver
uses: cdrani/action-semantic-release-info@fix/current-branch
- name: Update Version
if: steps.semver.outputs.version != ''
run: |
# Package
jq --arg version "${{ steps.semver.outputs.version }}" \
'.version = $version' package.json > tmp && \
mv tmp package.json
# Chrome
jq --arg version "${{ steps.semver.outputs.version }}" \
'.version = $version' src/manifest.chrome.json > tmp && \
mv tmp src/manifest.chrome.json
# Firefox
jq --arg version "${{ steps.semver.outputs.version }}" \
'.version = $version' src/manifest.firefox.json > tmp && \
mv tmp src/manifest.firefox.json
- name: Commit Changes
if: steps.semver.outputs.version != ''
run: |
git config --local user.name "Github Action"
git config user.email "action@github.com"
git diff --quiet || git commit -a -m "docs: bump version to ${{ steps.semver.outputs.git_tag }}"
git tag ${{ steps.semver.outputs.git_tag }}
- name: Push Changes
if: steps.semver.outputs.version != ''
uses: ad-m/github-push-action@master
with:
branch: ${{ github.ref }}
tags: true
- name: Nightly Merge
if: steps.semver.outputs.version != ''
uses: robotology/gh-action-nightly-merge@v1.4.0
with:
allow_ff: true
ff_only: true
stable_branch: 'main'
development_branch: 'develop'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Archive Extension Files
if: steps.semver.outputs.version != ''
run: |
function create_zip {
# $1: source dir, $2: temp dir, $3: output zip name, $4: manifest name
cp -r "$1" "$2"
mv "$2/manifest.$4.json" "$2/manifest.json"
cd "$2" && zip -r "../$3" . && cd ..
rm -rf "$2"
}
create_zip src chrome_temp chorus-chrome.zip chrome
create_zip src firefox_temp chorus-firefox.zip firefox
- name: Create Release Archive & Notes
if: steps.semver.outputs.version != ''
uses: ncipollo/release-action@v1.12.0
with:
tag: ${{ steps.semver.outputs.git_tag }}
name: ${{ steps.semver.outputs.git_tag }}
body: ${{ steps.semver.outputs.notes }}
artifacts: 'chorus-chrome.zip,chorus-firefox.zip'
- name: Upload & Publish
if: steps.semver.outputs.version != ''
uses: cdrani/chrome-extension-upload@ci/silent-update-fail
with:
silent-fail: true
file-path: chorus-chrome.zip
client-id: ${{ secrets.CLIENT_ID }}
extension-id: ${{ secrets.EXTENSION_ID }}
client-secret: ${{ secrets.CLIENT_SECRET }}
refresh-token: ${{ secrets.REFRESH_TOKEN }}