on: push: tags: - "v**" # 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: update-versions: runs-on: "ubuntu-latest" steps: - uses: "actions/checkout@v4" # Write the new version to package.json - uses: "actions/setup-node@v4" - run: "yarn version --new-version ${{ github.ref }}" # Write the new version to pyproject.toml - run: "pipx install poetry" - uses: "actions/setup-python@v5" with: python-version: "3.11" cache: "poetry" - run: "poetry version ${{ github.ref }}" rebuild: # Makes sure all artifacts are updated and use the new version needs: "update-versions" uses: "./.github/workflows/build.yml" deploy-frontend: needs: "rebuild" runs-on: "ubuntu-latest" environment: name: "github-pages" url: "${{ steps.deployment.outputs.page_url }}" steps: - uses: "dawidd6/action-download-artifact@v3" with: workflow: "build.yml" name: "frontend" path: "./public" allow_forks: false - uses: "dawidd6/action-download-artifact@v3" with: workflow: "build.yml" name: "logo" path: "./public" allow_forks: false - uses: "dawidd6/action-download-artifact@v3" with: workflow: "build.yml" name: "example" path: "./public" allow_forks: false - uses: "actions/configure-pages@v4" - uses: "actions/upload-pages-artifact@v3" 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@v4" - uses: "JRubics/poetry-publish@v2" with: python-version: "3.11" pypi_token: "${{ secrets.PYPI_TOKEN }}"