diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml new file mode 100644 index 0000000000..a02ed59d80 --- /dev/null +++ b/.github/workflows/update.yml @@ -0,0 +1,53 @@ +name: update +on: + workflow_dispatch: + schedule: + - cron: '0 */6 * * *' +jobs: + main: + runs-on: ubuntu-latest + steps: + - 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 }} + - uses: actions/checkout@v3 + if: ${{ env.ACT }} + - uses: actions/checkout@v3 + if: ${{ !env.ACT }} + with: + token: ${{ steps.create-app-token.outputs.token }} + - uses: actions/setup-node@v3 + with: + node-version: 18 + cache: 'npm' + - name: install dependencies + run: npm install + - name: load api data + run: npm run api:load + - name: validate playlists + run: | + npm run playlist:lint + npm run playlist:validate + - name: setup database + run: npm run db:create + - name: generate playlists + run: npm run playlist:generate + - name: generate streams.json + run: npm run api:generate + - name: update readme.md + run: npm run readme:update + - name: deploy to github pages + if: ${{ !env.ACT }} + run: GITHUB_TOKEN=${{ steps.create-app-token.outputs.token }} npm run deploy + - name: commit changes + if: ${{ !env.ACT }} + run: | + git config user.name "iptv-bot[bot]" + git config user.email "84861620+iptv-bot[bot]@users.noreply.github.com" + git add README.md + git commit -m "[Bot] Update README.md" -m "Committed by [iptv-bot](https://github.com/apps/iptv-bot) via [update](https://github.com/iptv-org/iptv/actions/runs/${{ github.run_id }}) workflow." --no-verify + git status + git push