# ==================================================================================================================== # # Authors: # # Patrick Lehmann # # Unai Martinez-Corral # # # # ==================================================================================================================== # # Copyright 2020-2026 The pyTooling Authors # # # # Licensed under the Apache License, Version 2.0 (the "License"); # # you may not use this file except in compliance with the License. # # You may obtain a copy of the License at # # # # http://www.apache.org/licenses/LICENSE-2.0 # # # # Unless required by applicable law or agreed to in writing, software # # distributed under the License is distributed on an "AS IS" BASIS, # # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # # See the License for the specific language governing permissions and # # limitations under the License. # # # # SPDX-License-Identifier: Apache-2.0 # # ==================================================================================================================== # name: Publish to GitHub Pages on: workflow_call: inputs: ubuntu_image_version: description: 'Ubuntu image version.' required: false default: '24.04' type: string doc: description: 'Name of the documentation artifact.' required: true type: string coverage: description: 'Name of the coverage artifact.' required: false default: '' type: string typing: description: 'Name of the typing artifact.' required: false default: '' type: string outputs: github_pages_url: description: "URL to GitHub Pages." value: ${{ jobs.PrepareGitHubPages.outputs.github_pages_url }} jobs: PrepareGitHubPages: name: 📖 Merge multiple contents for publishing runs-on: "ubuntu-${{ inputs.ubuntu_image_version }}" permissions: pages: write # to deploy to Pages id-token: write # to verify the deployment originates from an appropriate source environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} outputs: github_pages_url: ${{ steps.deployment.outputs.page_url }} steps: - name: 📥 Download artifacts '${{ inputs.doc }}' from 'SphinxDocumentation' job uses: pyTooling/download-artifact@v7 with: name: ${{ inputs.doc }} path: public - name: 📥 Download artifacts '${{ inputs.coverage }}' from 'Coverage' job uses: pyTooling/download-artifact@v7 if: ${{ inputs.coverage != '' }} with: name: ${{ inputs.coverage }} path: public/coverage - name: 📥 Download artifacts '${{ inputs.typing }}' from 'StaticTypeCheck' job uses: pyTooling/download-artifact@v7 if: ${{ inputs.typing != '' }} with: name: ${{ inputs.typing }} path: public/typing - name: 📑 Upload static files as artifact if: github.event_name != 'pull_request' uses: actions/upload-pages-artifact@v4 with: path: public/ - name: 📖 Deploy to GitHub Pages id: deployment if: github.event_name != 'pull_request' uses: actions/deploy-pages@v4