mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-26 23:43:08 +02:00
完成 (#12980)
This commit is contained in:
parent
fc4c868269
commit
79a9defa0c
1 changed files with 127 additions and 0 deletions
127
.github/workflows/check-misskey-js-autogen.yml
vendored
Normal file
127
.github/workflows/check-misskey-js-autogen.yml
vendored
Normal file
|
@ -0,0 +1,127 @@
|
||||||
|
name: Check Misskey JS autogen
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
paths:
|
||||||
|
- packages/backend/**
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check-misskey-js-autogen:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
|
||||||
|
env:
|
||||||
|
api_json_names: "api-base.json api-head.json"
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
submodules: true
|
||||||
|
|
||||||
|
- name: setup pnpm
|
||||||
|
uses: pnpm/action-setup@v2
|
||||||
|
with:
|
||||||
|
version: 8
|
||||||
|
|
||||||
|
- name: setup node
|
||||||
|
id: setup-node
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version-file: '.node-version'
|
||||||
|
cache: pnpm
|
||||||
|
|
||||||
|
- name: install dependencies
|
||||||
|
run: pnpm i --frozen-lockfile
|
||||||
|
|
||||||
|
- name: wait get-api-diff
|
||||||
|
uses: lewagon/wait-on-check-action@v1.3.3
|
||||||
|
with:
|
||||||
|
ref: ${{ github.event.pull_request.head.sha }}
|
||||||
|
check-regexp: get-from-misskey .+
|
||||||
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
wait-interval: 30
|
||||||
|
|
||||||
|
- name: Download artifact
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
const workflows = await github.rest.actions.listWorkflowRunsForRepo({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
head_sha: `${{ github.event.pull_request.head.sha }}`
|
||||||
|
}).then(x => x.data.workflow_runs);
|
||||||
|
|
||||||
|
console.log(workflows.map(x => ({name: x.name, title: x.display_title})));
|
||||||
|
|
||||||
|
const run_id = workflows.find(x => x.name.includes("Get api.json from Misskey")).id;
|
||||||
|
|
||||||
|
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
run_id: run_id,
|
||||||
|
});
|
||||||
|
|
||||||
|
let matchArtifacts = allArtifacts.data.artifacts.filter((artifact) => {
|
||||||
|
return artifact.name.startsWith("api-artifact-") || artifact.name == "api-artifact"
|
||||||
|
});
|
||||||
|
|
||||||
|
await Promise.all(matchArtifacts.map(async (artifact) => {
|
||||||
|
let download = await github.rest.actions.downloadArtifact({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
artifact_id: artifact.id,
|
||||||
|
archive_format: 'zip',
|
||||||
|
});
|
||||||
|
await fs.promises.writeFile(`${process.env.GITHUB_WORKSPACE}/${artifact.name}.zip`, Buffer.from(download.data));
|
||||||
|
}));
|
||||||
|
|
||||||
|
- name: unzip artifacts
|
||||||
|
run: |-
|
||||||
|
find . -mindepth 1 -maxdepth 1 -type f -name '*.zip' -exec unzip {} -d . ';'
|
||||||
|
ls -la
|
||||||
|
|
||||||
|
- name: build autogen
|
||||||
|
run: |-
|
||||||
|
for name in $(echo $api_json_names)
|
||||||
|
do
|
||||||
|
checksum=$(mktemp)
|
||||||
|
mv $name packages/misskey-js/generator/api.json
|
||||||
|
|
||||||
|
cd packages/misskey-js/generator
|
||||||
|
pnpm run generate
|
||||||
|
find built -type f -exec sh -c 'echo $(sed -E "s/^\s+\*\s+generatedAt:.+$//" {} | sha256sum | cut -d" " -f 1) {}' \; > $checksum
|
||||||
|
cd ../../..
|
||||||
|
cp $checksum ${name}_checksum
|
||||||
|
done
|
||||||
|
|
||||||
|
- name: check update for type definitions
|
||||||
|
run: diff $(echo -n ${api_json_names} | awk -v RS=" " '{ printf "%s_checksum ", $0 }')
|
||||||
|
|
||||||
|
- name: send message
|
||||||
|
if: failure()
|
||||||
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
|
with:
|
||||||
|
comment_tag: check-misskey-js-autogen
|
||||||
|
message: |-
|
||||||
|
Thank you for sending us a great Pull Request! 👍
|
||||||
|
Please regenerate misskey-js type definitions! 🙏
|
||||||
|
|
||||||
|
example:
|
||||||
|
```sh
|
||||||
|
pnpm run build-misskey-js-with-types
|
||||||
|
```
|
||||||
|
|
||||||
|
- name: send message
|
||||||
|
if: success()
|
||||||
|
uses: thollander/actions-comment-pull-request@v2
|
||||||
|
with:
|
||||||
|
comment_tag: check-misskey-js-autogen
|
||||||
|
mode: delete
|
||||||
|
message: "Thank you!"
|
Loading…
Reference in a new issue