diff --git a/.github/workflows/_update.yml b/.github/workflows/_update.yml new file mode 100644 index 00000000..d54ec5fe --- /dev/null +++ b/.github/workflows/_update.yml @@ -0,0 +1,87 @@ +name: _update +on: + workflow_dispatch: + schedule: + - cron: '0 9 * * *' +jobs: + update: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: echo "BRANCH_NAME=$(date +'bot/auto-update-%s')" >> $GITHUB_OUTPUT + id: create-branch-name + - run: git config user.name 'iptv-bot[bot]' + - run: git config user.email '84861620+iptv-bot[bot]@users.noreply.github.com' + - run: git checkout -b ${{ steps.create-branch-name.outputs.BRANCH_NAME }} + - uses: actions/setup-node@v3 + if: ${{ !env.ACT }} + with: + node-version: 16 + cache: 'npm' + - uses: tibdex/github-app-token@v1 + if: ${{ !env.ACT }} + id: create-app-token + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + - run: npm install + - run: npm run api:load + - run: GITHUB_TOKEN=${{ steps.create-app-token.outputs.token }} npm run programs:load + - run: npm run guides:update + - uses: JamesIves/github-pages-deploy-action@v4.4.1 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + with: + branch: gh-pages + folder: .gh-pages + token: ${{ steps.create-deploy-token.outputs.token }} + git-config-name: iptv-bot[bot] + git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com + commit-message: '[Bot] Update guides' + clean: false + force: false + - run: npm run api:update + - uses: JamesIves/github-pages-deploy-action@v4.4.1 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + with: + repository-name: iptv-org/api + branch: gh-pages + folder: .api + token: ${{ steps.create-app-token.outputs.token }} + git-config-name: iptv-bot[bot] + git-config-email: 84861620+iptv-bot[bot]@users.noreply.github.com + commit-message: '[Bot] Deploy to iptv-org/api' + clean: false + - run: npm run readme:update + - name: Commit Changes + if: ${{ !env.ACT }} + run: | + git add README.md + git commit -m "[Bot] Update README.md" + git status + git push -u origin ${{ steps.create-branch-name.outputs.BRANCH_NAME }} + - run: npm run status:update + - name: Commit Changes + if: ${{ !env.ACT }} + run: | + git add STATUS.md + git commit -m "[Bot] Update STATUS.md" + git status + git push -u origin ${{ steps.create-branch-name.outputs.BRANCH_NAME }} + - uses: repo-sync/pull-request@v2 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + id: pull-request + with: + github_token: ${{ steps.create-app-token.outputs.token }} + source_branch: ${{ steps.create-branch-name.outputs.BRANCH_NAME }} + destination_branch: 'master' + pr_title: '[Bot] Update README.md' + pr_body: | + This pull request is created via [update][1] workflow. + + [1]: https://github.com/iptv-org/epg/actions/runs/${{ github.run_id }} + - uses: juliangruber/merge-pull-request-action@v1 + if: ${{ !env.ACT && github.ref == 'refs/heads/master' }} + with: + github-token: ${{ secrets.PAT }} + number: ${{ steps.pull-request.outputs.pr_number }} + method: squash