Skip to content

Sdk get releases from revision #13

Sdk get releases from revision

Sdk get releases from revision #13

Workflow file for this run

name: Create GitHub release
on:
pull_request:
types: [closed]
jobs:
delete_draft_release:
if: github.event_name == 'pull_request' && github.event.action == 'closed'
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: '0'
- name: Delete draft releases and tags
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"
continue
fi
aws_release_version="$(basename $aws_release_dir)"
draft_tag_name="draft/aws/$aws_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"
else
echo "Found existing draft release $draft_tag_name, will delete it."
gh release delete --repo giantswarm/releases "$draft_tag_name" --yes --cleanup-tag
fi
done
create_release:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
fetch-depth: '0'
fetch-tags: 'true'
- name: Set up git identity
run: |
git config --local user.email "[email protected]"
git config --local user.name "taylorbot"
- 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"
continue
fi
aws_release_version="$(basename $aws_release_dir)"
echo "Found AWS (CAPA) release $aws_release_version."
tag_name="aws/$aws_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."
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"
git tag -a "$tag_name" -m "$tag_message"
git push origin "$tag_name"
fi
done
- name: Create new GitHub release
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"
continue
fi
aws_release_version="$(basename $aws_release_dir)"
tag_name="aws/$aws_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_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
else
gh release create --repo giantswarm/releases --target "$current_commit" --title "$release_title" --notes "$release_note" "$tag_name" "$aws_release_dir/release.yaml"
fi
else
echo "Found existing GitHub release for release version $aws_release_version and tag $tag_name."
fi
done