Skip to content
This repository has been archived by the owner on Aug 31, 2024. It is now read-only.

Commit

Permalink
ci: 完成合併請求自動訊息
Browse files Browse the repository at this point in the history
  • Loading branch information
xMikux committed Nov 24, 2022
1 parent b81d3e6 commit 6660fe0
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 43 deletions.
86 changes: 43 additions & 43 deletions .github/workflows/Auto-Packer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -142,47 +142,47 @@ jobs:
${{ steps.checksum.outputs.sum-02 }}
```
PR-Comment:
name: PR Comment
runs-on: ubuntu-latest
needs: [ Packer ]
if: |
github.event_name == 'pull_request'
steps:
- name: Find Comment
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: 感謝貢獻!❤️

- name: Get Current Artifacts
id: Artifacts
run: |
Artifact_1_Name=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[1] | .name')
Artifact_1_ID=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[1] | .id')
Artifact_2_Name=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[2] | .name')
Artifact_2_ID=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[2] | .id')
echo "Artifact_1_Name=$Artifact_1_Name" >> $GITHUB_OUTPUT
echo "$Artifact_1_Name"
echo "Artifact_1_ID=$Artifact_1_ID" >> $GITHUB_OUTPUT
echo "$Artifact_1_ID"
echo "Artifact_2_Name=$Artifact_2_Name" >> $GITHUB_OUTPUT
echo "$Artifact_2_Name"
echo "Artifact_2_ID=$Artifact_2_ID" >> $GITHUB_OUTPUT
echo "$Artifact_2_ID"
- name: Create or update comment
uses: peter-evans/create-or-update-comment@v2
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
感謝貢獻!❤️
# PR-Comment:
# name: PR Comment
# runs-on: ubuntu-latest
# needs: [ Packer ]
# if: |
# github.event_name == 'pull_request'

# steps:
# - name: Find Comment
# uses: peter-evans/find-comment@v2
# id: fc
# with:
# issue-number: ${{ github.event.pull_request.number }}
# comment-author: 'github-actions[bot]'
# body-includes: 感謝貢獻!❤️

# - name: Get Current Artifacts
# id: Artifacts
# run: |
# Artifact_0_Name=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[0] | .name')
# Artifact_0_ID=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[0] | .id')
# Artifact_1_Name=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[1] | .name')
# Artifact_1_ID=$(curl -H "Accept: application/vnd.github+json" https://api.github.com/repos/xMikux/ModsTranslationPack/actions/runs/${{ github.run_id }}/artifacts | jq -r '.artifacts[1] | .id')
# echo "Artifact_0_Name=$Artifact_0_Name" >> $GITHUB_OUTPUT
# echo "$Artifact_0_Name"
# echo "Artifact_0_ID=$Artifact_0_ID" >> $GITHUB_OUTPUT
# echo "$Artifact_0_ID"
# echo "Artifact_1_Name=$Artifact_1_Name" >> $GITHUB_OUTPUT
# echo "$Artifact_1_Name"
# echo "Artifact_1_ID=$Artifact_1_ID" >> $GITHUB_OUTPUT
# echo "$Artifact_1_ID"

# - name: Create or update comment
# uses: peter-evans/create-or-update-comment@v2
# with:
# comment-id: ${{ steps.fc.outputs.comment-id }}
# issue-number: ${{ github.event.pull_request.number }}
# body: |
# 感謝貢獻!❤️

下載合併請求測試用翻譯包:
- [${{ steps.Artifacts.outputs.Artifact_1_Name }}](https://nightly.link/xMikux/TestingModTranslate/actions/artifacts/${{ steps.Artifacts.outputs.Artifact_1_ID }}.zip)
- [${{ steps.Artifacts.outputs.Artifact_2_Name }}](https://nightly.link/xMikux/TestingModTranslate/actions/artifacts/${{ steps.Artifacts.outputs.Artifact_2_ID }}.zip)
edit-mode: replace
# 下載合併請求測試用翻譯包:
# - [${{ steps.Artifacts.outputs.Artifact_1_Name }}](https://nightly.link/xMikux/TestingModTranslate/actions/artifacts/${{ steps.Artifacts.outputs.Artifact_1_ID }}.zip)
# - [${{ steps.Artifacts.outputs.Artifact_2_Name }}](https://nightly.link/xMikux/TestingModTranslate/actions/artifacts/${{ steps.Artifacts.outputs.Artifact_2_ID }}.zip)
# edit-mode: replace
54 changes: 54 additions & 0 deletions .github/workflows/PR_Comment.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Comment on pull request
on:
workflow_run:
workflows: [ 'Auto Package' ]
types: [ completed ]
jobs:
pr_comment:
if: github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/github-script@v6
with:
# This snippet is public-domain, taken from
# https://github.com/oprypin/nightly.link/blob/master/.github/workflows/pr-comment.yml
script: |
async function upsertComment(owner, repo, issue_number, purpose, body) {
const {data: comments} = await github.rest.issues.listComments(
{owner, repo, issue_number});
const marker = `<!-- bot: ${purpose} -->`;
body = marker + "\n" + body;
const existing = comments.filter((c) => c.body.includes(marker));
if (existing.length > 0) {
const last = existing[existing.length - 1];
core.info(`Updating comment ${last.id}`);
await github.rest.issues.updateComment({
owner, repo,
body,
comment_id: last.id,
});
} else {
core.info(`Creating a comment in issue / PR #${issue_number}`);
await github.rest.issues.createComment({issue_number, body, owner, repo});
}
}
const {owner, repo} = context.repo;
const run_id = ${{github.event.workflow_run.id}};
const pull_requests = ${{ toJSON(github.event.workflow_run.pull_requests) }};
if (!pull_requests.length) {
return core.error("This workflow doesn't match any pull requests!");
}
const artifacts = await github.paginate(
github.rest.actions.listWorkflowRunArtifacts, {owner, repo, run_id});
if (!artifacts.length) {
return core.error(`No artifacts found`);
}
let body = `感謝貢獻!❤️\n\n下載此合併請求測試用翻譯包:\n`;
for (const art of artifacts) {
body += `\n* [${art.name}.zip](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`;
}
core.info("Review thread message body:", body);
for (const pr of pull_requests) {
await upsertComment(owner, repo, pr.number,
"nightly-link", body);
}

0 comments on commit 6660fe0

Please sign in to comment.