name: Sync and Release Extensions on: push: branches: - main paths: - manifest.json env: ACTIONS_RUNNER_DEBUG: false CI_COMMIT_MESSAGE: CI Build Artifacts 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: Commit Changes run: | git add ./{assets,charts,extensions,icons,index.yaml} git commit -a -m "${{ env.CI_COMMIT_MESSAGE }}" - name: Create Pull Request run: | # Create the PR using the GitHub CLI pr_number=$(gh pr create \ --title "Create PR for extension sync: ${{ env.CI_COMMIT_MESSAGE }}" \ --body "This PR was automatically created by a GitHub Action." \ --base main \ --head ${{ github.ref_name }} \ --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_OUTPUT - 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 merge-pr: needs: sync runs-on: ubuntu-latest steps: - name: Merge Pull Request run: | # Merge the PR using the GitHub CLI gh pr merge ${{ needs.create-pr.outputs.pr_number }} --merge --repo ${{ github.repository }} if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}