Fix parsing of cgroupv2 cpu.stat #146
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: 'Open downstream PRs' | |
| on: | |
| pull_request_target: | |
| branches: | |
| - 'main' | |
| paths: | |
| - '**/*.go' | |
| - '!vendor/**' | |
| - '!**/*_test.go' | |
| jobs: | |
| sync: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: 'Checkout Self' | |
| uses: actions/checkout@v5 | |
| # Because we use pull_request_target, this checks out the code from the default branch, NOT the PR branch | |
| - name: 'Setup Go' | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: 'stable' | |
| - name: 'Checkout forked buildah' | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: 'podmanbot/buildah' # The target repository | |
| path: 'buildah' # Checkout into a sub-directory | |
| fetch-depth: '1' | |
| token: ${{ secrets.VENDOR_TOKEN_PODMANBOT }} # We need to push into pobmanbot/buildah | |
| - name: 'Vendor Code from this repo to buildah' | |
| run: | | |
| # Get the current commit SHA from the PR | |
| COMMIT_SHA="${{ github.event.pull_request.head.sha }}" | |
| echo "Using commit SHA: $COMMIT_SHA" | |
| cd buildah | |
| # Create a unique branch name based on the container-libs PR number | |
| BRANCH_NAME="sync/container-libs-${{ github.event.pull_request.number }}" | |
| git switch -c $BRANCH_NAME | |
| git remote add upstream https://github.com/containers/buildah.git | |
| git fetch upstream | |
| git rebase upstream/main | |
| # Function to update module and verify | |
| update_module() { | |
| local module=$1 | |
| echo "Updating module: $module" | |
| go mod edit -replace ${module}=github.com/${{ github.event.pull_request.head.repo.full_name }}/${module#go.podman.io/}@${COMMIT_SHA} | |
| GOWORK=off go mod tidy | |
| } | |
| # Update all required modules | |
| update_module "go.podman.io/common" | |
| update_module "go.podman.io/storage" | |
| update_module "go.podman.io/image/v5" | |
| GOWORK=off go mod vendor | |
| GOWORK=off go mod verify | |
| echo "Updated go.mod:" | |
| cat go.mod | |
| - name: 'Commit and Push to buildah' | |
| run: | | |
| cd buildah | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| BRANCH_NAME="sync/container-libs-${{ github.event.pull_request.number }}" | |
| git switch $BRANCH_NAME | |
| # Check if there are any changes to commit | |
| if git diff --quiet && git diff --cached --quiet; then | |
| echo "No changes to commit, skipping..." | |
| echo "SKIP_PR=true" >> $GITHUB_ENV | |
| exit 0 | |
| fi | |
| git add . | |
| git commit -m "dnm: Vendor changes from containers/container-libs#${{ github.event.pull_request.number }}" | |
| # Force push to update the branch if the action re-runs on 'synchronize' | |
| git push origin $BRANCH_NAME --force | |
| # Verify the branch exists remotely | |
| if ! git ls-remote --heads origin $BRANCH_NAME | grep -q $BRANCH_NAME; then | |
| echo "Failed to push branch $BRANCH_NAME" | |
| exit 1 | |
| fi | |
| echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV | |
| - name: 'Create or Update Pull Request in Buildah' | |
| id: create_pr | |
| if: env.SKIP_PR != 'true' | |
| env: | |
| GH_TOKEN: ${{ secrets.VENDOR_TOKEN_PODMANBOT }} | |
| SELF_REPO_PR_NUMBER: ${{ github.event.pull_request.number }} | |
| SELF_REPO_PR_URL: ${{ github.event.pull_request.html_url }} | |
| SELF_REPO_PR_TITLE: ${{ github.event.pull_request.title }} | |
| run: | | |
| cd buildah | |
| BRANCH_NAME="sync/container-libs-${{ github.event.pull_request.number }}" | |
| PR_TITLE="Sync: ${SELF_REPO_PR_TITLE}" | |
| PR_BODY="This PR automatically vendors changes from [container-libs#${SELF_REPO_PR_NUMBER}](${SELF_REPO_PR_URL}). | |
| This PR is intended solely for testing purposes and should not be merged. Ideally, upstream maintainers should review any failing tests here and close this PR once the upstream PR is merged. Maintainers of this repository do not need to take any action, but may review the changes and notify upstream maintainers of any breaking issues if they wish. | |
| This PR is generated from a github actions workflow, please report any issues on https://github.com/containers/container-libs" | |
| # Check if PR already exists for this branch | |
| echo "Searching for existing PR with branch: $BRANCH_NAME" | |
| EXISTING_PR_URL=$(gh pr list --repo containers/buildah --head "$BRANCH_NAME" --json url --jq '.[0].url // empty' 2>/dev/null || echo "") | |
| if [ -n "$EXISTING_PR_URL" ]; then | |
| echo "Found existing PR: $EXISTING_PR_URL" | |
| # Update existing PR title and body | |
| gh pr edit $EXISTING_PR_URL \ | |
| --title "$PR_TITLE" \ | |
| --body "$PR_BODY" | |
| echo "Updated existing PR: $EXISTING_PR_URL" | |
| echo "pr_url=$EXISTING_PR_URL" >> $GITHUB_OUTPUT | |
| echo "pr_action=updated" >> $GITHUB_OUTPUT | |
| else | |
| # Create new PR | |
| echo "Creating new PR with head: podmanbot:$BRANCH_NAME" | |
| NEW_PR_URL=$(gh pr create \ | |
| --repo containers/buildah \ | |
| --draft \ | |
| --base main \ | |
| --head "podmanbot:$BRANCH_NAME" \ | |
| --title "$PR_TITLE" \ | |
| --body "$PR_BODY") | |
| echo "Created new PR: $NEW_PR_URL" | |
| echo "pr_url=$NEW_PR_URL" >> $GITHUB_OUTPUT | |
| echo "pr_action=created" >> $GITHUB_OUTPUT | |
| fi | |
| - name: 'Comment on container-libs PR with the link to buildah PR' | |
| if: env.SKIP_PR != 'true' | |
| env: | |
| GH_TOKEN: ${{ secrets.VENDOR_TOKEN_PODMANBOT }} | |
| SELF_REPO_PR_NUMBER: ${{ github.event.pull_request.number }} | |
| TARGET_REPO_PR_URL: ${{ steps.create_pr.outputs.pr_url }} | |
| PR_ACTION: ${{ steps.create_pr.outputs.pr_action }} | |
| run: | | |
| if [ "${{ env.PR_ACTION }}" = "created" ]; then | |
| COMMENT_BODY="✅ A new PR has been created in buildah to vendor these changes: **${{ env.TARGET_REPO_PR_URL }}**" | |
| gh pr comment ${{ env.SELF_REPO_PR_NUMBER }} \ | |
| --repo ${{ github.repository }} \ | |
| --body "$COMMENT_BODY" | |
| fi |