Skip to content

Create Release CI

Create Release CI #25

Workflow file for this run

# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs
name: Create Release CI
on:
workflow_dispatch:
inputs:
draft:
description: 'Is draft?'
required: true
default: true
type: boolean
prerelease:
description: 'Is prerelease?'
required: true
default: false
type: boolean
releaseDescription:
description: 'Description of the release'
required: true
type: string
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22.x'
cache: 'npm'
cache-dependency-path: frontend/package-lock.json
- name: Install Dependencies
run: npm ci
working-directory: frontend
- name: Build
run: npm run build --if-present
working-directory: frontend
# - run: cd frontend && npm test
- name: Upload Pages Artifact
uses: actions/upload-pages-artifact@v3
with:
path: frontend/dist/
- name: Archive Production Artifact
run: cd frontend/dist && zip -r ../../build.zip *
- name: Extract version from package.json
id: pkg
run: |
version=$(node -p "require('./frontend/package.json').version")
echo "version=$version" >> $GITHUB_OUTPUT
- name: Create Release and Upload Asset
uses: softprops/action-gh-release@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: build.zip
tag_name: v${{ steps.pkg.outputs.version }}
name: Release v${{ steps.pkg.outputs.version }}
body: ${{ github.event.inputs.releaseDescription }}
draft: ${{ github.event.inputs.draft }}
prerelease: ${{ github.event.inputs.prerelease }}
deploy:
needs: build
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}