[pull] master from diygod:master #4
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Issue Command | |
on: | |
issue_comment: | |
types: [created] | |
permissions: | |
contents: read | |
jobs: | |
rebase: | |
name: Automatic Rebase | |
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase') && github.event.comment.author_association == 'COLLABORATOR' | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
permissions: | |
contents: write | |
pull-requests: write | |
steps: | |
- name: Checkout the latest code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Automatic Rebase | |
uses: cirrus-actions/rebase@1.8 | |
env: | |
GITHUB_TOKEN: ${{ secrets.TOKEN_SUPER }} | |
self-assign: | |
name: Self Assign | |
if: ${{ !github.event.issue.pull_request && startsWith(github.event.comment.body, '/wip') }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
permissions: | |
contents: read | |
issues: write | |
steps: | |
- uses: bdougie/take-action@v1.6.1 | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
trigger: '/wip' | |
test-on-demand: | |
name: Test route on demand | |
if: startsWith(github.event.comment.body, '/test') | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
permissions: | |
contents: read | |
issues: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install pnpm | |
uses: pnpm/action-setup@v4 | |
- name: Use Node.js Active LTS | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/* | |
cache: 'pnpm' | |
- name: Install dependencies (pnpm) | |
run: pnpm i && pnpm rb | |
- name: Fetch affected routes | |
id: fetch-route | |
uses: actions/github-script@v7 | |
env: | |
EVENT: ${{ toJson(github.event) }} | |
with: | |
script: | | |
const event = JSON.parse(process.env.EVENT) | |
const body = event.comment.body | |
const number = event.issue.number | |
const sender = event.comment.user.login | |
const { default: identify } = await import('${{ github.workspace }}/scripts/workflow/test-route/identify.mjs') | |
return identify({ github, context, core }, body, number, sender) | |
- name: Build RSSHub | |
if: env.TEST_CONTINUE | |
run: pnpm build | |
- name: Start RSSHub | |
if: env.TEST_CONTINUE | |
run: pnpm start & | |
env: | |
ALLOW_USER_HOTLINK_TEMPLATE: true | |
ALLOW_USER_SUPPLY_UNSAFE_DOMAIN: true | |
NODE_ENV: dev | |
LOGGER_LEVEL: debug | |
- name: Generate feedback | |
if: env.TEST_CONTINUE | |
uses: actions/github-script@v7 | |
env: | |
TEST_BASEURL: http://localhost:1200 | |
TEST_ROUTES: ${{ steps.fetch-route.outputs.result }} | |
EVENT: ${{ toJson(github.event) }} | |
with: | |
script: | | |
const event = JSON.parse(process.env.EVENT) | |
const link = process.env.TEST_BASEURL | |
const routes = JSON.parse(process.env.TEST_ROUTES) | |
const number = event.issue.number | |
core.info(`${link}, ${routes}, ${number}`) | |
const { default: test } = await import('${{ github.workspace }}/scripts/workflow/test-route/test.mjs') | |
await test({ github, context, core }, link, routes, number) | |
- name: Print logs | |
if: (env.TEST_CONTINUE) | |
run: cat ${{ github.workspace }}/logs/combined.log | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: logs | |
path: logs | |
retention-days: 1 |