Files
yet-another-cad-viewer/.github/workflows/deploy2.yml
2025-11-23 05:58:56 +00:00

73 lines
2.1 KiB
YAML

on:
workflow_call:
inputs:
ref:
type: "string"
required: true
description: "The ref (branch or tag) to build"
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: "write"
pages: "write"
id-token: "write"
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
rebuild: # Makes sure all artifacts are updated and use the new version
uses: "./.github/workflows/build.yml"
with:
ref: "${{ inputs.ref }}"
deploy-frontend:
needs: "rebuild"
runs-on: "ubuntu-latest"
environment:
name: "github-pages"
url: "${{ steps.deployment.outputs.page_url }}"
steps:
- uses: "actions/download-artifact@v6"
with: # Downloads all artifacts from the build job
path: "./public"
merge-multiple: true
- uses: "actions/configure-pages@v5"
- uses: "actions/upload-pages-artifact@v4"
with:
path: 'public'
- id: "deployment"
uses: "actions/deploy-pages@v4"
- run: 'zip -r frontend.zip public'
- uses: "svenstaro/upload-release-action@v2"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
file: "frontend.zip"
tag: "${{ github.ref }}"
overwrite: true
deploy-backend:
needs: "rebuild"
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v6"
with:
ref: "${{ inputs.ref }}"
- uses: "actions/setup-node@v6"
with:
cache: "yarn"
- run: "pipx install poetry"
- uses: "actions/setup-python@v6"
with:
python-version: "3.13"
cache: "poetry"
- run: "poetry install"
- run: "poetry config pypi-token.pypi ${{ secrets.PYPI_TOKEN }}"
- run: "poetry run task build" # This task also builds the frontend (with reduced features for less size)
- run: "poetry publish"