0
0
mirror of https://github.com/neon-mmd/websurfx.git synced 2024-12-22 20:38:22 -05:00

Create releases.yml

This commit is contained in:
neon_arch 2023-05-12 14:22:25 +00:00 committed by GitHub
parent 16d76bf70d
commit a301be7cdb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

74
.github/workflows/releases.yml vendored Normal file
View File

@ -0,0 +1,74 @@
name: Releases
on:
push:
branches:
- rolling
concurrency:
group: "main-branch"
jobs:
changelog:
if: github.repository == 'neon-mmd/websurfx '
runs-on: ubuntu-latest
steps:
# Create a temporary, uniquely named branch to push release info to
- name: create temporary branch
uses: peterjgrainger/action-create-branch@v2.3.0
id: create-branch
with:
branch: "release-from-${{ github.sha }}"
sha: "${{ github.sha }}"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# check out the repository afterwards
- uses: actions/checkout@v3
# fetch branches and switch to the temporary branch
- name: switch to new branch
run: git fetch --all && git checkout --track origin/release-from-${{ github.sha }}
# update app config with version
- name: get-npm-version
id: package-version
uses: martinbeentjes/npm-get-version-action@master
- name: update app config
run: sed -i 's/0.0.0/${{ steps.package-version.outputs.current-version}}/g' config/app.json
# create release info and push it upstream
- name: conventional Changelog Action
id: changelog
uses: TriPSs/conventional-changelog-action@v3
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
version-file: "./package.json,./package-lock.json,./config/app.json"
git-branch: "release-from-${{ github.sha }}"
skip-on-empty: false
skip-git-pull: true
# create PR using GitHub CLI
- name: create PR with release info
id: create-pr
run: gh pr create --base main --head release-from-${{ github.sha }} --title 'Merge new release into main' --body 'Created by Github action'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# merge PR using GitHub CLI
- name: merge PR with release info
id: merge-pr
run: gh pr merge --admin --merge --subject 'Merge release info' --delete-branch
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# release info is now in main so we can continue as before
- name: create release with last commit
uses: actions/create-release@v1
if: steps.changelog.outputs.skipped == 'false'
env:
GITHUB_TOKEN: ${{ secrets.CHANGELOG_RELEASE }}
with:
tag_name: ${{ steps.changelog.outputs.tag }}
release_name: ${{ steps.changelog.outputs.tag }}
body: ${{ steps.changelog.outputs.clean_changelog }}