Skip to content

Commit

Permalink
Fix CAPZ workflows and CircleCi Jobs (#1295)
Browse files Browse the repository at this point in the history
* Fix CAPZ workflows and CircleCi Jobs

* Fix CAPZ workflows and CircleCi Jobs

* Indent

* skip release.yaml when not found

* undo
  • Loading branch information
njuettner authored Jun 27, 2024
1 parent ffb8cd6 commit 0761e45
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 26 deletions.
2 changes: 1 addition & 1 deletion .circleci/provider_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ workflows:
name: push-releases-to-azure-app-collection
app_catalog: releases
app_name: releases-azure
app_collection_repo: azure-app-collection
app_collection_repo: capz-app-collection
requires:
- push-releases-azure-to-releases-catalog
filters:
Expand Down
68 changes: 43 additions & 25 deletions .github/workflows/create-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,19 @@ jobs:
env:
GITHUB_TOKEN: "${{ secrets.TAYLORBOT_GITHUB_ACTION }}"
run: |
for aws_release_dir in capa/*; do
if [[ -f $aws_release_dir ]]; then
echo "Skipping file $aws_release_dir"
for provider_dir in capa/* azure/*; do
provider=""
if [[ $provider_dir == capa/* ]]; then
provider="aws"
elif [[ $provider_dir == azure/* ]]; then
provider="azure"
fi
if [[ -f $provider_dir || -z $provider ]]; then
echo "Skipping file or unknown provider $provider_dir"
continue
fi
aws_release_version="$(basename $aws_release_dir)"
draft_tag_name="draft/aws/$aws_release_version"
release_version="$(basename $provider_dir)"
draft_tag_name="draft/$provider/$release_version"
draft_release=$(gh release --repo giantswarm/releases view "$draft_tag_name" --json "id,name,tagName,assets,isDraft,isPrerelease,url" 2>&1 || true)
if [ "$draft_release" = "release not found" ]; then
echo "Draft release not found for tag $draft_tag_name"
Expand All @@ -49,19 +55,25 @@ jobs:
- name: Create new release tag
run: |
git fetch --tags
for aws_release_dir in capa/*; do
if [[ -f $aws_release_dir ]]; then
echo "Skipping file $aws_release_dir"
for provider_dir in capa/* capz/*; do
provider=""
if [[ $provider_dir == capa/* ]]; then
provider="aws"
elif [[ $provider_dir == azure/* ]]; then
provider="azure"
fi
if [[ -f $provider_dir || -z $provider ]]; then
echo "Skipping file or unknown provider $provider_dir"
continue
fi
aws_release_version="$(basename $aws_release_dir)"
echo "Found AWS (CAPA) release $aws_release_version."
tag_name="aws/$aws_release_version"
release_version="$(basename $provider_dir)"
echo "Found $provider release $release_version."
tag_name="$provider/$release_version"
if [ $(git tag -l "$tag_name") ]; then
echo "Found existing tag $tag_name for release version $aws_release_version, new tag is not needed."
echo "Found existing tag $tag_name for release version $release_version, new tag is not needed."
else
echo "Tag $tag_name for release version $aws_release_version not found, will create it."
tag_message="Workload cluster release $aws_release_version for AWS"
echo "Tag $tag_name for release version $release_version not found, will create it."
tag_message="Workload cluster release $release_version for $provider"
git tag -a "$tag_name" -m "$tag_message"
git push origin "$tag_name"
fi
Expand All @@ -70,25 +82,31 @@ jobs:
env:
GITHUB_TOKEN: "${{ secrets.TAYLORBOT_GITHUB_ACTION }}"
run: |
for aws_release_dir in capa/*; do
if [[ -f $aws_release_dir ]]; then
echo "Skipping file $aws_release_dir"
for provider_dir in capa/* azure/*; do
provider=""
if [[ $provider_dir == capa/* ]]; then
provider="aws"
elif [[ $provider_dir == azure/* ]]; then
provider="azure"
fi
if [[ -f $provider_dir || -z $provider ]]; then
echo "Skipping file or unknown provider $provider_dir"
continue
fi
aws_release_version="$(basename $aws_release_dir)"
tag_name="aws/$aws_release_version"
release_version="$(basename $provider_dir)"
tag_name="$provider/$release_version"
github_release=$(gh release --repo giantswarm/releases view "$tag_name" --json "id,name,tagName,assets,isDraft,isPrerelease,url" 2>&1 || true)
current_commit="$(git rev-parse HEAD)"
release_title="Workload cluster release $aws_release_version for AWS (CAPA)"
release_title="Workload cluster release $release_version for $provider"
release_note="This release has been created automatically by GitHub action. CI will be updated to have better release notes here."
if [ "$github_release" = "release not found" ]; then
echo "Didn't find a GitHub release for release version $aws_release_version and tag $tag_name. Creating a new release."
if [[ $aws_release_version == *-* ]]; then
gh release create --repo giantswarm/releases --target "$current_commit" --title "$release_title" --notes "$release_note" "$tag_name" "$aws_release_dir/release.yaml" --prerelease
echo "Didn't find a GitHub release for release version $release_version and tag $tag_name. Creating a new release."
if [[ $release_version == *-* ]]; then
gh release create --repo giantswarm/releases --target "$current_commit" --title "$release_title" --notes "$release_note" "$tag_name" "$provider_dir/release.yaml" --prerelease
else
gh release create --repo giantswarm/releases --target "$current_commit" --title "$release_title" --notes "$release_note" "$tag_name" "$aws_release_dir/release.yaml"
gh release create --repo giantswarm/releases --target "$current_commit" --title "$release_title" --notes "$release_note" "$tag_name" "$provider_dir/release.yaml"
fi
else
echo "Found existing GitHub release for release version $aws_release_version and tag $tag_name."
echo "Found existing GitHub release for release version $release_version and tag $tag_name."
fi
done

0 comments on commit 0761e45

Please sign in to comment.