mirror of
				https://github.com/community-scripts/ProxmoxVE.git
				synced 2025-11-04 02:12:49 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Auto Update .app-files
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - main
 | 
						|
    paths:
 | 
						|
      - 'ct/**.sh'
 | 
						|
  workflow_dispatch: 
 | 
						|
 | 
						|
jobs:
 | 
						|
  update-app-files:
 | 
						|
    runs-on: runner-cluster-htl-set
 | 
						|
 | 
						|
    permissions:
 | 
						|
      contents: write
 | 
						|
      pull-requests: write
 | 
						|
 | 
						|
    steps:
 | 
						|
      - name: Generate a token
 | 
						|
        id: generate-token
 | 
						|
        uses: actions/create-github-app-token@v1
 | 
						|
        with:
 | 
						|
          app-id: ${{ vars.APP_ID }}
 | 
						|
          private-key: ${{ secrets.APP_PRIVATE_KEY }}
 | 
						|
 | 
						|
      # Step 1: Checkout repository
 | 
						|
      - name: Checkout repository
 | 
						|
        uses: actions/checkout@v2
 | 
						|
 | 
						|
      # Step 2: Disable file mode changes detection
 | 
						|
      - name: Disable file mode changes
 | 
						|
        run: git config core.fileMode false
 | 
						|
 | 
						|
      # Step 3: Set up Git user for committing changes
 | 
						|
      - name: Set up Git
 | 
						|
        run: |
 | 
						|
          git config --global user.name "GitHub Actions"
 | 
						|
          git config --global user.email "github-actions[bot]@users.noreply.github.com"
 | 
						|
 | 
						|
      # Step 4: Install figlet
 | 
						|
      - name: Install figlet
 | 
						|
        run: sudo apt-get install -y figlet
 | 
						|
 | 
						|
      # Step 5: Run the updated generate-app-files.sh script
 | 
						|
      - name: Run generate-app-files.sh
 | 
						|
        run: |
 | 
						|
          chmod +x .github/workflows/scripts/generate-app-headers.sh
 | 
						|
          .github/workflows/scripts/generate-app-headers.sh
 | 
						|
        env:
 | 
						|
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
 | 
						|
      # Step 6: Check if there are any changes
 | 
						|
      - name: Check if there are any changes
 | 
						|
        run: |
 | 
						|
          echo "Checking for changes..."
 | 
						|
          git add -A  # Untracked Dateien aufnehmen
 | 
						|
          git status
 | 
						|
          if git diff --cached --quiet; then
 | 
						|
            echo "No changes detected."
 | 
						|
            echo "changed=false" >> "$GITHUB_ENV"
 | 
						|
          else
 | 
						|
            echo "Changes detected:"
 | 
						|
            git diff --stat --cached
 | 
						|
            echo "changed=true" >> "$GITHUB_ENV"
 | 
						|
          fi
 | 
						|
 | 
						|
      # Step 7: Commit and create PR if changes exist
 | 
						|
      - name: Commit and create PR if changes exist
 | 
						|
        if: env.changed == 'true'
 | 
						|
        run: |
 | 
						|
          git commit -m "Update .app files"
 | 
						|
          git checkout -b pr-update-app-files
 | 
						|
          git push origin pr-update-app-files --force
 | 
						|
          gh pr create --title "[core] update .app files" \
 | 
						|
                       --body "This PR is auto-generated by a GitHub Action to update the .app files." \
 | 
						|
                       --head pr-update-app-files \
 | 
						|
                       --base main \
 | 
						|
                       --label "automated pr"
 | 
						|
        env:
 | 
						|
          GH_TOKEN: ${{ steps.generate-token.outputs.token }}
 | 
						|
      
 | 
						|
      - name: Approve pull request
 | 
						|
        if: env.changed == 'true'
 | 
						|
        env:
 | 
						|
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
        run: |
 | 
						|
          PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number')
 | 
						|
          if [ -n "$PR_NUMBER" ]; then
 | 
						|
            gh pr review $PR_NUMBER --approve
 | 
						|
          fi
 | 
						|
          
 | 
						|
      - name: Re-approve pull request after update
 | 
						|
        if: env.changed == 'true'
 | 
						|
        env:
 | 
						|
          GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
						|
        run: |
 | 
						|
          PR_NUMBER=$(gh pr list --head "pr-update-app-files" --json number --jq '.[].number')
 | 
						|
          if [ -n "$PR_NUMBER" ]; then
 | 
						|
            gh pr review $PR_NUMBER --approve
 | 
						|
          fi
 | 
						|
 | 
						|
      # Step 8: Output success message when no changes
 | 
						|
      - name: No changes detected
 | 
						|
        if: env.changed == 'false'
 | 
						|
        run: echo "No changes to commit. Workflow completed successfully."
 |