Skip to content

Commit

Permalink
Introduce a GitHub Actions workflow for publishing a release
Browse files Browse the repository at this point in the history
This commit migrates this functionality away from the bots. Note that
the NPM token must be configured as a repository secret before this
workflow can execute.

The following resources are relevant for this patch:

- Publishing packages to the NPM registry:
  https://docs.github.com/en/actions/publishing-packages/publishing-nodejs-packages#publishing-packages-to-the-npm-registry
- Creating secrets for a repository:
  https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository
  • Loading branch information
timvandermeij committed Jun 30, 2024
1 parent 40b0c84 commit f3eaff5
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 43 deletions.
39 changes: 39 additions & 0 deletions .github/workflows/publish_release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
name: Publish release
on:
release:
types: [published]
pull_request:
permissions:
contents: read

jobs:
publish:
name: Publish
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [lts/*]

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: npm install

- name: Build the `pdfjs-dist` library
run: npx gulp dist

- name: Publish the `pdfjs-dist` library to NPM
run: npm publish ./build/dist --dry-run
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
45 changes: 2 additions & 43 deletions gulpfile.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2240,7 +2240,7 @@ function packageJson() {
}

gulp.task(
"dist-pre",
"dist",
gulp.series(
"generic",
"generic-legacy",
Expand Down Expand Up @@ -2368,7 +2368,7 @@ gulp.task(

gulp.task(
"dist-install",
gulp.series("dist-pre", function createDistInstall(done) {
gulp.series("dist", function createDistInstall(done) {
let distPath = DIST_DIR;
const opts = {};
const installPath = process.env.PDFJS_INSTALL_PATH;
Expand All @@ -2381,47 +2381,6 @@ gulp.task(
})
);

gulp.task(
"dist",
gulp.series("dist-pre", function createDist(done) {
const VERSION = getVersionJSON().version;

console.log();
console.log("### Committing changes");

let reason = process.env.PDFJS_UPDATE_REASON;
// Attempt to work-around the broken link, see https://github.com/mozilla/pdf.js/issues/10391
if (typeof reason === "string") {
const reasonParts =
/^(See )(mozilla\/pdf\.js)@tags\/(v\d+\.\d+\.\d+)\s*$/.exec(reason);

if (reasonParts) {
reason =
reasonParts[1] +
"https://github.com/" +
reasonParts[2] +
"/releases/tag/" +
reasonParts[3];
}
}
const message =
"PDF.js version " + VERSION + (reason ? " - " + reason : "");
safeSpawnSync("git", ["add", "*"], { cwd: DIST_DIR });
safeSpawnSync("git", ["commit", "-am", message], { cwd: DIST_DIR });
safeSpawnSync("git", ["tag", "-a", "v" + VERSION, "-m", message], {
cwd: DIST_DIR,
});

console.log();
console.log("Done. Push with");
console.log(
" cd " + DIST_DIR + "; git push --tags " + DIST_REPO_URL + " master"
);
console.log();
done();
})
);

gulp.task(
"mozcentralbaseline",
gulp.series(createBaseline, function createMozcentralBaseline(done) {
Expand Down

0 comments on commit f3eaff5

Please sign in to comment.