feat: add HiringCafe route #4835
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] | |
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/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
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: | |
issues: write | |
steps: | |
- uses: bdougie/[email protected] | |
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: | |
attestations: write | |
issues: write | |
pull-requests: write | |
steps: | |
- name: Fetch PR data (for PR) | |
if: github.event.issue.pull_request | |
uses: octokit/[email protected] | |
id: pr-data | |
with: | |
route: GET /repos/{repo}/pulls/{number} | |
repo: ${{ github.repository }} | |
number: ${{ github.event.issue.number }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Checkout | |
if: ${{ !github.event.issue.pull_request }} | |
uses: actions/checkout@v4 | |
- name: Checkout PR | |
if: github.event.issue.pull_request | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ fromJson(steps.pr-data.outputs.data).head.ref }} | |
- 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 |