Skip to content

Check ecr-token new release #136

Check ecr-token new release

Check ecr-token new release #136

name: Check ecr-token new release
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
check-and-release:
runs-on: ubuntu-latest
permissions:
contents: write
packages: write
id-token: write
attestations: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Get current tag
id: current_release
run: |
# awscli_release
awscli_current_release=$(grep "ARG AWSCLI_VERSION" Dockerfile | cut -d '=' -f 2)
echo "awscli_current_release=$awscli_current_release" >> $GITHUB_OUTPUT
# kubectl_release
kubectl_current_release=$(grep "ARG KUBECTL_VERSION" Dockerfile | cut -d '=' -f 2)
echo "kubectl_current_release=$kubectl_current_release" >> $GITHUB_OUTPUT
- name: Install updatecli
uses: updatecli/updatecli-action@v2
- name: Update dependencies
env:
GITHUB_TOKEN: ${{ secrets.PAT_GITHUB }}
run: |
updatecli apply --config .github/updatecli/dependencies.yaml --commit=false
- name: Get latest tag
id: latest_release
run: |
# awscli_release
awscli_latest_release=$(grep "ARG AWSCLI_VERSION" Dockerfile | cut -d '=' -f 2)
echo "awscli_latest_release=$awscli_latest_release" >> $GITHUB_OUTPUT
# kubectl_release
kubectl_latest_release=$(grep "ARG KUBECTL_VERSION" Dockerfile | cut -d '=' -f 2)
echo "kubectl_latest_release=$kubectl_latest_release" >> $GITHUB_OUTPUT
# complete_tag
echo "complete_release=awscli$awscli_latest_release-kubectl$kubectl_latest_release" >> $GITHUB_OUTPUT
- name: Check if exists changes
id: check_changes
env:
awscli_current_release: ${{ steps.current_release.outputs.awscli_current_release }}
awscli_latest_release: ${{ steps.latest_release.outputs.awscli_latest_release }}
kubectl_current_release: ${{ steps.current_release.outputs.kubectl_current_release }}
kubectl_latest_release: ${{ steps.latest_release.outputs.kubectl_latest_release }}
run: |
# awscli
if [ "$awscli_current_release" != "$awscli_latest_release" ]; then
body+="AWS CLI version:\n"
body+=" - :information_source: Current: \`$awscli_current_release\`\n"
body+=" - :up: Upgrade: \`$awscli_latest_release\`\n"
body+=" - Changelog: https://github.com/aws/aws-cli/releases/tag/$awscli_latest_release\n\n"
echo "release_changed=true" >> $GITHUB_OUTPUT
fi
# kubectl
if [ "$kubectl_current_release" != "$kubectl_latest_release" ]; then
body+="Kubectl version:\n"
body+=" - :information_source: Current: \`$kubectl_current_release\`\n"
body+=" - :up: Upgrade: \`$kubectl_latest_release\`\n"
body+=" - Changelog: https://github.com/kubernetes/kubectl/releases/tag/v$kubectl_latest_release\n\n"
echo "release_changed=true" >> $GITHUB_OUTPUT
fi
echo -e "$body" > pr-output.log
- name: Create PR changes
if: steps.check_changes.outputs.release_changed == 'true'
uses: peter-evans/create-pull-request@v7
with:
token: ${{ secrets.PAT_GITHUB }}
commit-message: "feat: new ecr-token version ${{ steps.latest_release.outputs.complete_release }}"
signoff: false
branch: feat/upgrade-ecr-token-${{ steps.latest_release.outputs.complete_release }}
delete-branch: true
title: '[ecr-token] new release: ${{ steps.latest_release.outputs.complete_release }}'
body-path: pr-output.log
labels: |
auto-pr-bump-version