Skip to content

Commit

Permalink
Update code for linking to wheels in PR
Browse files Browse the repository at this point in the history
  • Loading branch information
Luthaf committed Nov 19, 2024
1 parent 5388ad8 commit 7693a3f
Show file tree
Hide file tree
Showing 3 changed files with 100 additions and 64 deletions.
100 changes: 100 additions & 0 deletions .github/workflows/comment-download.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: Comment on pull request
on:
workflow_run:
workflows: ['Build Python wheels']
types: [completed]

permissions:
pull-requests: write

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@v7
with:
script: |
async function getArtifactLink(artifactName, owner, repo, run_id) {
// get the list of artifacts
const artifacts = await github.paginate(
github.rest.actions.listWorkflowRunArtifacts, {owner, repo, run_id}
);
if (!artifacts.length) {
return core.error(`No artifacts found`);
}
for (const artifact of artifacts) {
if (artifact.name == artifactName) {
return `https://nightly.link/${owner}/${repo}/actions/artifacts/${artifact.id}.zip`;
}
}
return core.error(`failed to find ${artifactName} artifact`);
}
let link;
let body_message;
const {owner, repo} = context.repo;
const run_id = ${{github.event.workflow_run.id}};
const workflow_name = "${{github.event.workflow_run.name}}";
console.info(`${workflow_name} triggered this run`)
// Find the PR with the right sha, see https://github.com/orgs/community/discussions/25220
const response = await github.rest.search.issuesAndPullRequests({
q: 'repo:${{ github.repository }} is:pr sha:${{ github.event.workflow_run.head_sha }}',
per_page: 1,
})
const items = response.data.items
if (items.length < 1) {
return core.error("No matching pull requests found");
}
const pull_number = items[0].number;
console.info("Pull request number is", pull_number)
if (workflow_name == 'Documentation') { // currently unused, this is done by readthedocs
link = await getArtifactLink('docs', owner, repo, run_id);
// Add horizontal line for docs only because assuming this is one
// triggered first. The wheels building should take much longer...
body_message = `\n----\n 📚 [Download documentation preview for this pull-request](${link})\n`;
} else { // wheels
link = await getArtifactLink('wheels', owner, repo, run_id);
body_message = `⚙️ [Download Python wheels for this pull-request (you can install these with pip)](${link})\n`;
}
const MESSAGE_SEPARATOR_START = `\r\n\r\n<!-- download-section ${workflow_name} start -->\r\n`;
const MESSAGE_SEPARATOR_END = `\r\n<!-- download-section ${workflow_name} end -->`;
const { data: pull } = await github.rest.pulls.get({
owner: owner,
repo: repo,
pull_number: pull_number,
});
let body = "";
if (pull.body) {
if (pull.body.indexOf(MESSAGE_SEPARATOR_START) === -1) {
// First time updating this description
body = pull.body + MESSAGE_SEPARATOR_START + body_message + MESSAGE_SEPARATOR_END;
}
else {
// we already updated this description before
body = pull.body.slice(0, pull.body.indexOf(MESSAGE_SEPARATOR_START));
body = body + MESSAGE_SEPARATOR_START + body_message + MESSAGE_SEPARATOR_END;
body = body + pull.body.slice(pull.body.indexOf(MESSAGE_SEPARATOR_END) + MESSAGE_SEPARATOR_END.length);
}
}
else {
// Pull Request description is empty
body = MESSAGE_SEPARATOR_START + body_message + MESSAGE_SEPARATOR_END;
}
github.rest.pulls.update({
owner: owner,
repo: repo,
pull_number: pull_number,
body: body,
});
62 changes: 0 additions & 62 deletions .github/workflows/comment-wheels-pr.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .github/workflows/coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,6 @@ jobs:
echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> $GITHUB_ENV
- name: collect rust and C/C++ coverage
# env:
# FEATOMIC_TEST_WITH_STATIC_LIB: "1"
run: |
cargo tarpaulin --all-features --workspace --engine=llvm --out=xml --output-dir=target/tarpaulin --objects target/debug/libfeatomic.so
# cleanup C/C++ coverage
Expand Down

0 comments on commit 7693a3f

Please sign in to comment.