Automatically deploy new tag onto github pages #43
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create new release and deploy onto github pages | |
on: | |
workflow_dispatch: | |
inputs: | |
version: | |
description: 'Version' | |
required: true | |
type: string | |
branch: | |
description: 'Branch' | |
required: true | |
type: string | |
default: 'master' | |
jobs: | |
deploy: | |
name: Deploy new version | |
runs-on: ubuntu-latest | |
env: | |
CI: '' | |
#GITHUB_TOKEN: ${{ secrets.APP_TOKEN }} | |
#GH_TOKEN: ${{ secrets.APP_TOKEN }} | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
steps: | |
- name: Generate a token | |
id: generate-token | |
uses: actions/create-github-app-token@v1 | |
with: | |
app-id: ${{ secrets.APP_ID }} | |
private-key: ${{ secrets.APP_PRIVATE_KEY }} | |
env: | |
GH_TOKEN: ${{ steps.generate-token.outputs.token }} | |
- name: checkout | |
uses: actions/checkout@v3 | |
- name: setup node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 'latest' | |
cache: 'npm' | |
- name: install dependencies | |
run: npm ci | |
- name: git config | |
run: | | |
git config --global user.email "[email protected]" | |
git config --global user.name "github-actions-bot" | |
git remote set-url origin https://git:${GH_TOKEN}@github.com/${GITHUB_REPOSITORY}.git | |
- name: create version | |
run: | | |
git checkout -b release-${{ inputs.version }} | |
npm version ${{ inputs.version }} --allow-same-version | |
git push origin release-${{ inputs.version }} | |
git tag -d $(git tag -l) | |
- name: create PR | |
run: gh pr create --title "Release ${{ inputs.version }}" -B ${{ inputs.branch }} -H release-${{ inputs.version }} --fill | |
- name: merge PR | |
run: gh pr merge release-${{ inputs.version }} --delete-branch --merge | |
- name: create release | |
run: gh release create ${{ inputs.version }} --generate-notes | |
- name: deploy with gh-pages | |
run: npm run deploy |