1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- name: Sync and Release Extensions
- on:
- push:
- branches:
- - main
- paths:
- - manifest.json
- env:
- ACTIONS_RUNNER_DEBUG: false
- CI_COMMIT_MESSAGE: CI Build Artifacts
- GH_TOKEN: ${{ github.token }}
- jobs:
- sync:
- if: github.repository_owner == 'rancher'
- name: Sync and Release Extensions
- runs-on: ubuntu-latest
- permissions: write-all
- steps:
- - name: Checkout
- uses: actions/checkout@v3
- - name: Configure Git
- run: |
- git config user.name github-actions
- git config user.email github-actions@github.com
-
- - name: Setup Helm
- uses: azure/setup-helm@v3
- with:
- version: v3.12.1
- - name: Run sync script
- shell: bash
- id: sync_script
- run: |
- chmod +x ./scripts/sync
- ./scripts/sync
- - name: Generate branch name based on date and time
- run: echo "NOW=$(date +'%Y-%m-%d-%H-%M-%S')" >> $GITHUB_ENV
- - name: Commit Changes and push to a branch
- run: |
- git checkout -b sync-${{ env.NOW }}
- git add ./{assets,charts,extensions,icons,index.yaml}
- git commit -a -m "Sync extensions ${{ env.NOW }}"
- git push origin sync-${{ env.NOW }}
- - name: Create Pull Request
- run: |
- # Create the PR using the GitHub CLI
- pr_number=$(gh pr create \
- --title "Create PR for extension sync: ${{ env.NOW }}" \
- --body "This PR was automatically created by a GitHub Action." \
- --base main \
- --head sync-${{ env.NOW }} \
- --fill \
- --repo ${{ github.repository }} | awk '{print $NF}') # Get the PR URL and Extract the last element (the PR number)
- # Check if pr_number is empty (creation failed)
- if [ -z "$pr_number" ]; then
- echo "Failed to create PR."
- exit 1
- fi
-
- # Store the PR number as an output
- echo "PR_NUMBER=$pr_number" >> $GITHUB_ENV
- - name: Merge Pull Request
- run: |
- # Merge the PR using the GitHub CLI
- gh pr merge ${{ env.PR_NUMBER }} --delete-branch --merge --repo ${{ github.repository }}
-
- - name: Run chart-releaser
- uses: helm/chart-releaser-action@v1.5.0
- with:
- charts_dir: ./charts/*
- env:
- CR_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
- CR_SKIP_EXISTING: true
|