diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml index cfbae66e..201a8ebd 100644 --- a/.github/workflows/auto-update.yml +++ b/.github/workflows/auto-update.yml @@ -51,6 +51,7 @@ jobs: name: .gh-pages path: .gh-pages/guides/${{ matrix.site }}.guide.xml deploy: + if: ${{ github.ref == 'refs/heads/master' }} needs: grab runs-on: ubuntu-latest steps: @@ -58,6 +59,12 @@ jobs: uses: actions/checkout@v2 - name: Download Artifacts uses: actions/download-artifact@v2 + - name: Generate Token + uses: tibdex/github-app-token@v1 + id: generate-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} - name: Deploy to GitHub Pages uses: JamesIves/github-pages-deploy-action@4.1.1 with: @@ -65,3 +72,7 @@ jobs: folder: .gh-pages target-folder: guides clean: false + token: ${{ steps.generate-token.outputs.token }} + git-config-name: iptv-bot + git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com + commit-message: '[Bot] Deploy to GitHub Pages' diff --git a/.github/workflows/update-codes.yml b/.github/workflows/update-codes.yml index 640e0b82..a1bd3911 100644 --- a/.github/workflows/update-codes.yml +++ b/.github/workflows/update-codes.yml @@ -4,11 +4,27 @@ on: schedule: - cron: '0 0 * * *' jobs: - update: + create-branch: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 + with: + ref: ${{ github.ref }} + - name: Create Branch + uses: peterjgrainger/action-create-branch@v2.0.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + branch: 'bot/update-codes' + update-codes: + runs-on: ubuntu-latest + needs: create-branch + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: bot/update-codes - name: Install Dependencies run: npm install - name: Update Codes @@ -18,16 +34,36 @@ jobs: with: name: codes.csv path: codes.csv + commit-changes: + runs-on: ubuntu-latest + needs: update-codes + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + ref: bot/update-codes + - name: Download Artifacts + uses: actions/download-artifact@v2 + with: + name: codes.csv + - name: Commit Changes + uses: stefanzweifel/git-auto-commit-action@v4 + with: + commit_message: '[Bot] Update codes' + commit_user_name: iptv-bot + commit_user_email: 84861620+iptv-bot[bot]@users.noreply.github.com + commit_author: 'iptv-bot[bot] <84861620+iptv-bot[bot]@users.noreply.github.com>' + branch: bot/update-codes + file_pattern: codes.csv pull-request: - needs: update + if: ${{ github.ref == 'refs/heads/master' }} + needs: commit-changes runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - - name: Download codes.csv - uses: actions/download-artifact@v2 with: - name: codes.csv + ref: bot/update-codes - name: Generate Token uses: tibdex/github-app-token@v1 id: generate-token @@ -36,26 +72,24 @@ jobs: private_key: ${{ secrets.APP_PRIVATE_KEY }} - name: Create Pull Request id: pr - uses: peter-evans/create-pull-request@v3 + uses: repo-sync/pull-request@v2 with: - title: '[Bot] Update codes' - body: | - This pull request is created automatically by `update-codes` action. - commit-message: '[Bot] Update codes' - committer: GitHub - branch: bot/update-codes - delete-branch: true - token: ${{ steps.generate-token.outputs.token }} + source_branch: 'bot/update-codes' + destination_branch: 'master' + pr_title: '[Bot] Update codes' + pr_body: | + This pull request is created by [update-codes][1] workflow. + + [1]: https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }} + github_token: ${{ steps.generate-token.outputs.token }} - name: Enable Pull Request Automerge - if: steps.pr.outputs.pull-request-operation == 'created' uses: peter-evans/enable-pull-request-automerge@v1 with: token: ${{ secrets.PAT }} - pull-request-number: ${{ steps.pr.outputs.pull-request-number }} + pull-request-number: ${{ steps.pr.outputs.pr_number }} merge-method: squash - name: Approve Pull Request - if: steps.pr.outputs.pull-request-operation == 'created' uses: juliangruber/approve-pull-request-action@v1 with: github-token: ${{ secrets.PAT }} - number: ${{ steps.pr.outputs.pull-request-number }} + number: ${{ steps.pr.outputs.pr_number }}