Bump to v5.5.1 #10
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Machine OS PR" | |
on: | |
pull_request_target: | |
paths: | |
- 'version/rawversion/version.go' | |
concurrency: | |
# Cancel other in-progress runs on re-pushes | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number }} | |
cancel-in-progress: true | |
jobs: | |
podman-image-build-pr: | |
name: Open PR on podman-machine-os | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
issues: write | |
pull-requests: write | |
env: | |
SHA: ${{github.event.pull_request.head.sha}} | |
UPSTREAM_MACHINE_OS: "containers/podman-machine-os" | |
PODMAN_REPO: "containers/podman" | |
steps: | |
- name: Get version | |
id: getversion | |
run: | | |
VERSION=$(curl "https://raw.githubusercontent.com/$PODMAN_REPO/$SHA/version/rawversion/version.go" | sed -n 's/^const RawVersion = \"\([0-9]\+\.[0-9]\+\.[0-9]\+\(-rc[0-9]\+\|-dev\)\?\)"$/\1/p') | |
# ignore -dev version bumps unless on main | |
if [[ -z "$VERSION" ]] ; then | |
echo "::error:: Invalid version string" | |
exit 1 | |
elif [[ $VERSION == *-dev ]] ; then | |
echo "::warning:: SKIPPING: dev bump" | |
elif [[ ${{github.base_ref}} == "main" ]] ; then | |
echo "::warning:: SKIPPING: main branch" | |
elif [[ ${{github.base_ref}} == *-rhel ]] ; then | |
echo "::warning:: SKIPPING: rhel branch" | |
else | |
echo "update=true" >> "$GITHUB_OUTPUT" | |
fi | |
echo "version=$VERSION" >> "$GITHUB_OUTPUT" | |
- name: Check machine-os-branch | |
if: steps.getversion.outputs.update == 'true' | |
run: | | |
if ! (curl -s https://api.github.com/repos/$UPSTREAM_MACHINE_OS/branches| jq -e --arg branch "${{github.base_ref}}" '.[] | select(.name==$branch)') ; then | |
echo "::error:: Release branch does not exist." | |
echo "::error:: Please push $branch to $UPSTREAM_MACHINE_OS, then re-run this task." | |
exit 1 | |
fi | |
- name: Label | |
if: steps.getversion.outputs.update == 'true' | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_REPO: ${{ github.repository }} | |
run: | | |
gh pr edit --add-label do-not-merge/wait-machine-os-build ${{github.event.number}} | |
- name: Install wait-for-copr | |
if: steps.getversion.outputs.update == 'true' | |
run: | | |
pip3 install git+https://github.com/packit/wait-for-copr.git@main | |
- uses: actions/checkout@v4 | |
if: steps.getversion.outputs.update == 'true' | |
id: checkout | |
with: | |
repository: containers/podman-machine-os | |
ref: ${{github.base_ref}} | |
token: ${{secrets.PODMANBOT_TOKEN}} | |
- name: Bump version | |
if: steps.getversion.outputs.update == 'true' | |
env: | |
VERS: ${{steps.getversion.outputs.version}} | |
run: | | |
update=$(printf 's/export PODMAN_VERSION=".*"/export PODMAN_VERSION="%s"/g\n' "$VERS") | |
sed -i "$update" podman-rpm-info-vars.sh | |
sed -i 's/export PODMAN_PR_NUM=".*"/export PODMAN_PR_NUM="${{github.event.number}}"/g' podman-rpm-info-vars.sh | |
echo "Updated file:" | |
cat podman-rpm-info-vars.sh | |
- name: Wait for COPR build | |
if: steps.getversion.outputs.update == 'true' | |
run: | | |
wait-for-copr \ | |
--owner packit \ | |
--project containers-podman-${{github.event.number}} \ | |
podman \ | |
${SHA::9} | |
- name: Push | |
if: steps.getversion.outputs.update == 'true' | |
run: | | |
# Make committer the user who triggered the action, either through cutting a release or manual trigger | |
# GitHub gives everyone a noreply email associated with their account, use that email for the sign-off | |
git config --local user.name ${{ github.actor }} | |
git config --local user.email "${{ github.actor_id }}+${{ github.actor }}@users.noreply.github.com" | |
bumpbranch="pr${{github.event.number}}" | |
git checkout -b $bumpbranch | |
git add podman-rpm-info-vars.sh | |
git commit --signoff -m "Bump Podman to v${{ steps.getversion.outputs.version }}" | |
git remote add podmanbot https://github.com/podmanbot/podman-machine-os | |
git push -f podmanbot "$bumpbranch" | |
- name: Check open PRs | |
id: checkpr | |
if: steps.getversion.outputs.update == 'true' | |
run: | | |
prs=$(gh pr list \ | |
--repo $UPSTREAM_MACHINE_OS \ | |
--head "pr${{github.event.number}}" \ | |
--state open \ | |
--json title \ | |
--jq 'length') | |
if ((prs > 0)); then | |
echo "::notice:: SKIPPING: PR already exists. Re-pushed to re-trigger build." | |
else | |
echo "openpr=true" >> "$GITHUB_OUTPUT" | |
fi | |
env: | |
GH_TOKEN: ${{ secrets.PODMANBOT_TOKEN }} | |
- name: Open PR | |
if: steps.getversion.outputs.update == 'true' && steps.checkpr.outputs.openpr == 'true' | |
id: pr | |
run: | | |
bumpbranch="pr${{github.event.number}}" | |
body=$(printf 'Triggered by https://github.com/%s/pull/%s\n\n```release-note\nRelease v%s\n```\n' \ | |
"$PODMAN_REPO" "${{github.event.number}}" "${{ steps.getversion.outputs.version }}") | |
uri=`gh pr create \ | |
--title "Bump Podman to v${{ steps.getversion.outputs.version }}" \ | |
--body "$body" \ | |
--head "podmanbot:$bumpbranch" \ | |
--base "${{github.base_ref}}" \ | |
--repo $UPSTREAM_MACHINE_OS` | |
echo "uri=$uri" >> "$GITHUB_OUTPUT" | |
env: | |
GH_TOKEN: ${{ secrets.PODMANBOT_TOKEN }} | |
- name: Comment PR link | |
if: steps.getversion.outputs.update == 'true' && steps.checkpr.outputs.openpr == 'true' | |
uses: thollander/actions-comment-pull-request@v3 | |
with: | |
message: "Building images at: ${{ steps.pr.outputs.uri }}" |