mirror of
https://github.com/containers/podman.git
synced 2026-07-13 00:31:45 -04:00
Many GitHub Actions workflows currently trigger on user forks, leading to unnecessary CI resource consumption, unwanted bot behavior, and inevitable failures. This commit restricts these specific workflows to only run on the primary `containers/podman` repository. The restricted workflows fall into two main categories: 1. Require Custom Upstream Secrets: Workflows like `release`, `mac-pkg`, `cherry-pick`, and `dev-bump` rely on secrets (e.g., Apple/Azure certs, PODMANBOT_TOKEN, ACTION_MAIL_*) that are unavailable in forks. 2. Manage Upstream Tracker State: Workflows like `assign`, `stale`, and `labeler` are intended strictly for managing the primary project's issues and PRs. Running them on personal forks creates unwanted noise. Additionally, refactored several complex `if` conditions using YAML multi-line strings (`|`) to maintain and improve readability. Signed-off-by: Byounguk Lee <nimdrak@gmail.com>
175 lines
6.5 KiB
YAML
175 lines
6.5 KiB
YAML
name: Bump to -dev version
|
|
on:
|
|
push:
|
|
tags:
|
|
- '*'
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
bump:
|
|
if: github.repository == 'podman-container-tools/podman'
|
|
name: Bump to -dev
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write # to create and push to a branch
|
|
pull-requests: write # to read and create pull requests
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
ref: ${{ github.ref_name }}
|
|
token: ${{ secrets.PODMANBOT_TOKEN }}
|
|
persist-credentials: true
|
|
- name: Bump
|
|
id: bump
|
|
run: |
|
|
version=${GITHUB_REF_NAME#v}
|
|
if [[ $version == *-rc* ]]; then
|
|
devbump="${version%-*}-dev"
|
|
echo "::notice:: is a rc - bumping z down to $devbump"
|
|
else
|
|
arr=($(echo "$version" | tr . '\n'))
|
|
arr[2]=$((${arr[2]}+1))
|
|
devbump="$(IFS=. ; echo "${arr[*]}")-dev"
|
|
echo "::notice:: bumping z up to $devbump"
|
|
fi
|
|
|
|
sed --sandbox -i -e "s/const RawVersion = \".*\"/const RawVersion = \"${devbump}\"/g" version/rawversion/version.go
|
|
|
|
echo "devbump=$devbump" >> $GITHUB_OUTPUT
|
|
- name: Push
|
|
env:
|
|
DEVBUMP: ${{ steps.bump.outputs.devbump }}
|
|
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="bump-${DEVBUMP}"
|
|
git checkout -b $bumpbranch
|
|
git add version/rawversion/version.go
|
|
git commit --signoff -m "Bump Podman to v${DEVBUMP}"
|
|
git remote add podmanbot https://github.com/podmanbot/podman
|
|
git push -f podmanbot "$bumpbranch"
|
|
- name: Check open PRs
|
|
id: checkpr
|
|
env:
|
|
DEVBUMP: ${{ steps.bump.outputs.devbump }}
|
|
GH_TOKEN: ${{ secrets.PODMANBOT_TOKEN }}
|
|
run: |
|
|
prs=$(gh pr list \
|
|
--repo "${GITHUB_REPOSITORY}" \
|
|
--head "bump-${DEVBUMP}" \
|
|
--state open \
|
|
--json title \
|
|
--jq 'length')
|
|
if ((prs > 0)); then
|
|
echo "SKIPPING: PR already exists to update from ${GITHUB_REF_NAME}."
|
|
else
|
|
echo "prexists=false" >> "$GITHUB_OUTPUT"
|
|
fi
|
|
- name: Open PR
|
|
if: steps.checkpr.outputs.prexists == 'false'
|
|
id: pr
|
|
env:
|
|
DEVBUMP: ${{ steps.bump.outputs.devbump }}
|
|
GH_TOKEN: ${{ secrets.PODMANBOT_TOKEN }}
|
|
run: |
|
|
bumpbranch="bump-${DEVBUMP}"
|
|
base=${GITHUB_REF_NAME%.*}
|
|
body=$(printf '```release-note\nNone\n```\n')
|
|
gh pr create \
|
|
--title "Bump Podman to v${DEVBUMP}" \
|
|
--body "$body" \
|
|
--head "podmanbot:$bumpbranch" \
|
|
--base "$base" \
|
|
--repo "${GITHUB_REPOSITORY}"
|
|
mainbump:
|
|
name: Bump on main
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
contents: write # to create and push to a branch
|
|
pull-requests: write # to read and create pull requests
|
|
env:
|
|
GH_TOKEN: ${{ github.token }}
|
|
steps:
|
|
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
|
|
with:
|
|
ref: main
|
|
token: ${{ secrets.PODMANBOT_TOKEN }}
|
|
persist-credentials: true
|
|
- name: Check version on main
|
|
id: check
|
|
run: |
|
|
mainvers=`grep -P '(?<=const RawVersion = ")(\d.\d)' -o version/rawversion/version.go`
|
|
releasevers=${GITHUB_REF_NAME#v}
|
|
if echo "${mainvers},${releasevers}" | tr ',' '\n' | sort -V -C
|
|
then
|
|
echo "bump=true" >> $GITHUB_OUTPUT
|
|
echo "Main is lower than release, so we need to bump main"
|
|
else
|
|
echo "::notice:: SKIPPING: Main is higher than release, no need to bump"
|
|
fi
|
|
- name: Bump main
|
|
id: bump
|
|
if: steps.check.outputs.bump == 'true'
|
|
run: |
|
|
releasevers=${GITHUB_REF_NAME#v}
|
|
|
|
arr=($(echo "$releasevers" | tr . '\n'))
|
|
arr[1]=$((${arr[1]}+1))
|
|
arr[2]=0
|
|
devbump="$(IFS=. ; echo "${arr[*]}")-dev"
|
|
echo "::notice:: Bumping main to: $devbump"
|
|
|
|
sed --sandbox -i -e "s/const RawVersion = \".*\"/const RawVersion = \"${devbump}\"/g" version/rawversion/version.go
|
|
|
|
echo "devbump=$devbump" >> $GITHUB_OUTPUT
|
|
- name: Push
|
|
if: steps.check.outputs.bump == 'true'
|
|
env:
|
|
DEVBUMP: ${{ steps.bump.outputs.devbump }}
|
|
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="bump-main-${DEVBUMP}"
|
|
git checkout -b $bumpbranch
|
|
git add version/rawversion/version.go
|
|
git commit --signoff -m "Bump main to v${DEVBUMP}"
|
|
git remote add podmanbot https://github.com/podmanbot/podman
|
|
git push -f podmanbot "$bumpbranch"
|
|
- name: Check open PRs
|
|
id: checkpr
|
|
if: steps.check.outputs.bump == 'true'
|
|
env:
|
|
DEVBUMP: ${{ steps.bump.outputs.devbump }}
|
|
GH_TOKEN: ${{ secrets.PODMANBOT_TOKEN }}
|
|
run: |
|
|
prs=$(gh pr list \
|
|
--repo "${GITHUB_REPOSITORY}" \
|
|
--head "bump-main-${DEVBUMP}" \
|
|
--state open \
|
|
--json title \
|
|
--jq 'length')
|
|
if ((prs > 0)); then
|
|
echo "SKIPPING: PR already exists to update to ${DEVBUMP}."
|
|
else
|
|
echo "prexists=false" >> "$GITHUB_OUTPUT"
|
|
fi
|
|
- name: Open PR
|
|
if: steps.check.outputs.bump == 'true' && steps.checkpr.outputs.prexists == 'false'
|
|
env:
|
|
DEVBUMP: ${{ steps.bump.outputs.devbump }}
|
|
GH_TOKEN: ${{ secrets.PODMANBOT_TOKEN }}
|
|
run: |
|
|
bumpbranch="bump-main-${DEVBUMP}"
|
|
body=$(printf '```release-note\nNone\n```\n')
|
|
gh pr create \
|
|
--title "Bump main to v${DEVBUMP}" \
|
|
--body "$body" \
|
|
--head "podmanbot:$bumpbranch" \
|
|
--base "main" \
|
|
--repo "${GITHUB_REPOSITORY}"
|