mirror of
https://github.com/yeicor-3d/yet-another-cad-viewer.git
synced 2025-12-19 14:14:13 +01:00
73 lines
2.1 KiB
YAML
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@v7"
|
|
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.14"
|
|
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"
|
|
|