Triggered by 1. CI/CD pull request (CCM-13191: Root Level AgentsMD (#149)). Include prerelease: true Version: latest #105
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "2. Deploy docs to GitHub Pages" | |
| on: | |
| workflow_run: | |
| workflows: ["1. CI/CD pull request"] | |
| types: | |
| - completed | |
| branches: [main] | |
| workflow_dispatch: | |
| inputs: | |
| include_prereleases: | |
| type: choice | |
| description: "Include pre-releases" | |
| default: "true" | |
| options: | |
| - "true" | |
| - "false" | |
| version: | |
| type: string | |
| default: latest | |
| description: "Install specific version" | |
| run-name: >- | |
| ${{ (inputs.include_prereleases != null | |
| && inputs.version != null | |
| && format('Triggered Manually. Include prerelease: {0} Version: {1} By: @{2}', | |
| inputs.include_prereleases, | |
| inputs.version, | |
| github.actor)) | |
| || format('Triggered by {0} ({1}). Include prerelease: true Version: latest', | |
| github.event.workflow_run.name, | |
| github.event.workflow_run.display_title) }} | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| jobs: | |
| metadata: | |
| name: "Set CI/CD metadata" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 1 | |
| outputs: | |
| build_datetime: ${{ steps.variables.outputs.build_datetime }} | |
| build_timestamp: ${{ steps.variables.outputs.build_timestamp }} | |
| build_epoch: ${{ steps.variables.outputs.build_epoch }} | |
| nodejs_version: ${{ steps.variables.outputs.nodejs_version }} | |
| python_version: ${{ steps.variables.outputs.python_version }} | |
| terraform_version: ${{ steps.variables.outputs.terraform_version }} | |
| version: ${{ steps.variables.outputs.version }} | |
| # tag: ${{ steps.variables.outputs.tag }} | |
| steps: | |
| - name: "Checkout code" | |
| uses: actions/checkout@v5 | |
| - name: "Set CI/CD variables" | |
| id: variables | |
| run: | | |
| datetime=$(date -u +'%Y-%m-%dT%H:%M:%S%z') | |
| echo "build_datetime=$datetime" >> $GITHUB_OUTPUT | |
| echo "build_timestamp=$(date --date=$datetime -u +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT | |
| echo "build_epoch=$(date --date=$datetime -u +'%s')" >> $GITHUB_OUTPUT | |
| echo "nodejs_version=$(grep "^nodejs\s" .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT | |
| echo "python_version=$(grep "^python\s" .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT | |
| echo "terraform_version=$(grep "^terraform\s" .tool-versions | cut -f2 -d' ')" >> $GITHUB_OUTPUT | |
| echo "version=$(head -n 1 .version 2> /dev/null || echo unknown)" >> $GITHUB_OUTPUT | |
| # echo "tag=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT | |
| - name: "List variables" | |
| run: | | |
| export BUILD_DATETIME="${{ steps.variables.outputs.build_datetime }}" | |
| export BUILD_TIMESTAMP="${{ steps.variables.outputs.build_timestamp }}" | |
| export BUILD_EPOCH="${{ steps.variables.outputs.build_epoch }}" | |
| export NODEJS_VERSION="${{ steps.variables.outputs.nodejs_version }}" | |
| export PYTHON_VERSION="${{ steps.variables.outputs.python_version }}" | |
| export TERRAFORM_VERSION="${{ steps.variables.outputs.terraform_version }}" | |
| export VERSION="${{ steps.variables.outputs.version }}" | |
| # export TAG="${{ steps.variables.outputs.tag }}" | |
| make list-variables | |
| deploy-jekyll: | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| needs: metadata | |
| steps: | |
| - name: "Checkout code" | |
| uses: actions/checkout@v5 | |
| - name: "Get version" | |
| id: get-asset-version | |
| shell: bash | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| INPUTS_INCLUDE_PRERELEASES="${{ inputs.include_prereleases }}" | |
| INPUTS_INCLUDE_PRERELEASES=${INPUTS_INCLUDE_PRERELEASES:-"true"} | |
| INPUTS_VERSION="${{ inputs.version }}" | |
| INPUTS_VERSION=${INPUTS_VERSION:-"latest"} | |
| if [[ $INPUTS_INCLUDE_PRERELEASES == true ]]; then | |
| json=$(gh release list --json tagName --limit 1 --exclude-drafts) | |
| else | |
| json=$(gh release list --json tagName --limit 1 --exclude-drafts --exclude-pre-releases) | |
| fi | |
| echo "Release list response: $json" | |
| # Check if the response is empty | |
| if [[ "$json" == "[]" ]] || [[ -z "$json" ]]; then | |
| echo "::error::No releases found. Please create a release before deploying docs." | |
| exit 1 | |
| fi | |
| release_version=$(echo $json | jq -r '.[0].tagName') | |
| if [[ "$release_version" == "null" ]] || [[ -z "$release_version" ]]; then | |
| echo "::error::Could not extract release version from: $json" | |
| exit 1 | |
| fi | |
| echo "Found release version: $release_version" | |
| if [[ $INPUTS_VERSION == latest ]]; then | |
| echo "release_version=$release_version" >> $GITHUB_OUTPUT | |
| else | |
| echo "release_version=$INPUTS_VERSION" >> $GITHUB_OUTPUT | |
| fi | |
| - name: "Get release version" | |
| id: download-asset | |
| shell: bash | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| gh release download ${{steps.get-asset-version.outputs.release_version}} -p jekyll-docs-*.tar --output artifact.tar | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: jekyll-docs-${{steps.get-asset-version.outputs.release_version}} | |
| path: artifact.tar | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 | |
| with: | |
| artifact_name: jekyll-docs-${{steps.get-asset-version.outputs.release_version}} |