Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sync values.schema.json only on the latest release #2103

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .github/workflows/sync-config-schema.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Sync Config Schema
on:
release:
types:
- published # this will run whenever a release (or pre-release is created)
- released # this will run when a (not-pre-)release is created or was changed from pre-release to a release
jobs:
sync:
runs-on: ubuntu-latest
outputs:
latest_release_tag: ${{ steps.release.outputs.latest_release }}
is_latest_release: ${{ steps.release.outputs.is_latest_release }}
steps:
- name: Checkout repo
uses: actions/checkout@v4

- name: Configure git
run: git config --global url.https://$GH_ACCESS_TOKEN@github.com/.insteadOf https://github.com/
env:
GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }}

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Get release info
id: release
run: |
RELEASE_JSON=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
"https://api.github.com/repos/${{ github.repository }}/releases/latest")

LATEST_RELEASE_NAME=$(echo "$RELEASE_JSON" | jq -r '.name')
IS_LATEST="false"
if [[ "${LATEST_RELEASE_NAME}" == "${{ github.event.release.tag_name }}" ]]; then
IS_LATEST="true"
fi
echo "Latest release name: $LATEST_RELEASE_NAME"
echo "Is latest release: $IS_LATEST"
echo "latest_release=$LATEST_RELEASE_NAME" >> "$GITHUB_OUTPUT"
echo "is_latest_release=$IS_LATEST" >> "$GITHUB_OUTPUT"

- name: Clone and update
if: ${{ steps.release.outputs.is_latest_release == 'true' }}
run: |
git clone --single-branch https://github.com/loft-sh/vcluster-config.git

# copy generated schema from vcluster chart values to vcluster-config
cp chart/values.schema.json vcluster-config/values.schema.json

cd vcluster-config

git add --all

# if there are no changes, exit early
if git diff-index --quiet HEAD --; then
exit 0
fi

# set git info
git config --global user.name "Loft Bot"
git config --global user.email 'loft-bot@users.noreply.github.com'
echo "Changes detected"

# commit changes
git commit -m "chore: sync vCluster config schema"
git push -u origin -f main
echo "Pushed commit to main branch"
FabianKramm marked this conversation as resolved.
Show resolved Hide resolved
1 change: 0 additions & 1 deletion .github/workflows/sync-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ jobs:
git clone --single-branch https://github.com/loft-sh/vcluster-config.git

cp -R config/. vcluster-config/config/
cp chart/values.schema.json vcluster-config/values.schema.json

cd vcluster-config

Expand Down
Loading