Skip to content

cbron is updating partials #2

cbron is updating partials

cbron is updating partials #2

name: Update partials in documentation
run-name: ${{ github.actor }} is updating partials
permissions:
contents: write
pull-requests: write
on:
push:
tags:
- vcluster-v*
- platform-v*
workflow_dispatch:
inputs:
releaseTag:
description: 'Release tag in form vcluster-vX.Y (e.g. vcluster-v0.22) or platform-vX. (e.g. platform-v4)'
required: true
type: string
jobs:
sync:
runs-on: ubuntu-latest
outputs:
release_tag: ${{ steps.release.outputs.release_tag }}
steps:
- name: Determine release tag
id: release
env:
MANUAL_TAG: ${{ inputs.releaseTag }}
run: |
if [[ -n "${MANUAL_TAG}" ]]; then
echo "Manually set tag: ${MANUAL_TAG}"
final_tag=${MANUAL_TAG}
else
echo "Tag from release event: ${{ github.event.release.tag_name }}"
final_tag=${{ github.event.release.tag_name }}
fi
echo "release_tag=${final_tag}" >> "$GITHUB_OUTPUT"
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-tags: 'true'
ref: 'refs/tags/${{ steps.release.outputs.release_tag }}'
ssh-key: ${{ secrets.DEPLOY_KEY }}
- name: Configure git
run: |
git config --global user.name "Loft Bot"
git config --global user.email '[email protected]'
git config --global url.https://[email protected]/.insteadOf https://github.com/
env:
GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
- name: Clone vcluster-docs
run: git clone --single-branch https://github.com/loft-sh/vcluster-docs.git
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: vcluster-docs/go.mod
- name: Generate vCluster Platform partials
if: ${{ startsWith(steps.release.outputs.release_tag, 'platform-') }}
env:
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
VERSION_TAG: ${{ steps.release.outputs.release_tag }}
run: |
versionTag=${VERSION_TAG#"platform-v"}
echo "parsed vCluster Platform tag: ${versionTag}"
mkdir -p "vcluster-docs/configsrc/platform/${versionTag}"
cp vcluster.schema.json "vcluster-docs/configsrc/platform/$versionTag/vcluster.schema.json"
cd vcluster-docs
branch_name="generate-partials-for-${VERSION_TAG}"
git switch -c ${branch_name}
# generate platform partials
go run hack/platform/partials/main.go "configsrc/platform/${versionTag}/vcluster.schema.json"
git add .
# if there are no changes, exit early
if git diff-index --quiet HEAD --; then
exit 0
fi
# commit changes
git commit -m "chore: generate vCluster Platform partials for vCluster ${{ env.VERSION_TAG }}"
git push -u origin -f ${branch_name}
gh pr create --fill
echo "Create PR in vcluster-docs"
- name: Generate vCluster partials
if: ${{ startsWith(steps.release.outputs.release_tag, 'vcluster-') }}
env:
GH_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}
VERSION_TAG: ${{ steps.release.outputs.release_tag }}
run: |
versionTag=${VERSION_TAG#"vcluster-v"}
echo "parsed vCluster tag: ${versionTag}"
mkdir -p "vcluster-docs/configsrc/vcluster/${versionTag}"
cp vcluster.schema.json "vcluster-docs/configsrc/vcluster/${versionTag}/vcluster.schema.json"
# copy default values.yaml
cp config/values.yaml "vcluster-docs/configsrc/vcluster/${versionTag}/default_values.yaml"
cd vcluster-docs
branch_name="generate-partials-for-${VERSION_TAG}"
git switch -c ${branch_name}
# generate vcluster partials for given version
go run hack/vcluster/partials/main.go "configsrc/vcluster/${versionTag}" "vcluster_versioned_docs/version-${versionTag}.0/_partials/config"
git add .
# if there are no changes, exit early
if git diff-index --quiet HEAD --; then
exit 0
fi
# commit changes
git commit -m "chore: generate vCluster partials for vCluster ${versionTag}"
git push -u origin -f ${branch_name}
gh pr create --fill
echo "Create PR in vcluster-docs"