You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
bazarr/.github/workflows/release_beta_to_dev.yaml

81 lines
2.7 KiB

name: release_beta_to_dev
on: workflow_dispatch
jobs:
Release:
runs-on: ubuntu-latest
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
UI_DIRECTORY: ./frontend
ASSET_DIRECTORY: ./__builds__
FETCH_DEPTH: 15 # Should be enough
steps:
- name: Validate branch
if: ${{ github.ref != 'refs/heads/development' }}
run: |
echo This action can only be run on development branch, not ${{ github.ref }}
exit 1
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: ${{ env.FETCH_DEPTH }}
ref: development
- name: Setup Git
run: |
git config --global user.name "github-actions" &&
git fetch --depth ${{ env.FETCH_DEPTH }} --tags
- name: Cache node_modules
uses: actions/cache@v2
with:
path: '${{ env.UI_DIRECTORY }}/node_modules'
key: ${{ runner.os }}-modules-${{ hashFiles('**/package-lock.json') }}
restore-keys: ${{ runner.os }}-modules-
- name: Setup NodeJS
uses: actions/setup-node@v2
with:
node-version: "15.x"
- name: Install Global Tools
run: npm install -g release-it auto-changelog
- name: Install UI Dependencies
run: npm install
working-directory: ${{ env.UI_DIRECTORY }}
- name: Build UI
run: npm run build
working-directory: ${{ env.UI_DIRECTORY }}
# TODO: Wrap this to a standalone plugin
- name: Check CI Status
id: check_ci
shell: bash
run: |
echo "**** Checking latest status from ${{ env.STATUS_WORKFLOW_NAME }} ****"
Raw_Result=$(curl -sSL "https://api.github.com/repos/${{ github.repository }}/actions/workflows/${{ env.STATUS_WORKFLOW_NAME }}/runs?per_page=1&event=push")
Result="failed"
if [[ $? -eq 0 ]]; then
echo $Raw_Result | grep conclusion | grep success > /dev/null 2>&1
if [[ $? -eq 0 ]]; then
Result="success"
fi
else
echo "**** Error occurred ****"
fi
echo "**** Status: $Result ****"
echo "::set-output name=result::$Result"
- name: Create Release (Conditional)
if: ${{ steps.check_ci.outputs.result == 'success' }}
run: |
revision_count=$(git rev-list --invert-grep --regexp-ignore-case --extended-regexp --grep="^(Release|no log:).*" $(git describe --tags --abbrev=0)..HEAD --count)
if [[ $revision_count != 0 ]]; then
echo "**** Found $revision_count changes! Releasing... ****"
release-it --ci --increment prerelease --preRelease=beta
else
echo "**** Cannot find changes! Skipping... ****"
fi