diff --git a/.github/workflows/release-docs-bundles.yml b/.github/workflows/release-docs-bundles.yml new file mode 100644 index 00000000..1e8ca1c6 --- /dev/null +++ b/.github/workflows/release-docs-bundles.yml @@ -0,0 +1,83 @@ +on: + workflow_dispatch: + inputs: + version: + description: 'Release version (e.g., "2026.02.0-139"). Leave empty to use RELEASE_VERSION from _environment' + required: false + type: string + overwrite: + description: 'Overwrite existing release if it exists' + required: false + type: boolean + default: false + +name: Release Documentation Bundles + +jobs: + build-docs: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Get Release Version + id: get-version + run: | + if [ -n "${{ inputs.version }}" ]; then + echo "release_version=${{ inputs.version }}" >> $GITHUB_OUTPUT + else + RELEASE_VERSION=$(grep '^RELEASE_VERSION=' $GITHUB_WORKSPACE/_environment | cut -d '=' -f 2 | tr -d '"') + echo "release_version=${RELEASE_VERSION}" >> $GITHUB_OUTPUT + fi + + - name: Get Quarto Version + id: get-quarto-version + run: | + QUARTO_VERSION=$(grep 'version = ' netlify.toml | sed 's/.*version = "v\?\([^"]*\)".*/\1/') + echo "quarto_version=${QUARTO_VERSION}" >> $GITHUB_OUTPUT + + - name: Set up Quarto + uses: quarto-dev/quarto-actions/setup@v2 + with: + version: ${{ steps.get-quarto-version.outputs.quarto_version }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Render public Positron docs + uses: quarto-dev/quarto-actions/render@v2 + env: + QUARTO_PROFILE: positron + RELEASE_VERSION: ${{ steps.get-version.outputs.release_version }} + + - name: Render Workbench docs + uses: quarto-dev/quarto-actions/render@v2 + env: + QUARTO_PROFILE: workbench + RELEASE_VERSION: ${{ steps.get-version.outputs.release_version }} + + - name: Create docs bundles + run: | + cd _site + zip -r ../positron-docs-${{ steps.get-version.outputs.release_version }}.zip . + cd ../_site-workbench + zip -r ../positron-workbench-docs-${{ steps.get-version.outputs.release_version }}.zip . + + - name: Delete existing release + if: ${{ inputs.overwrite }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + gh release delete ${{ steps.get-version.outputs.release_version }} --yes --cleanup-tag || true + + - name: Create Release + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ steps.get-version.outputs.release_version }} + name: ${{ steps.get-version.outputs.release_version }} + body: | + Documentation for https://github.com/posit-dev/positron/releases/tag/${{ steps.get-version.outputs.release_version }} + files: | + positron-docs-${{ steps.get-version.outputs.release_version }}.zip + positron-workbench-docs-${{ steps.get-version.outputs.release_version }}.zip