Skip to content

Commit

Permalink
Meta: publish biblio in github actions
Browse files Browse the repository at this point in the history
  • Loading branch information
bakkot committed Jan 24, 2024
1 parent c313d82 commit 1b85827
Show file tree
Hide file tree
Showing 5 changed files with 86 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .github/workflows/publish-biblio.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: 'ecma-402-biblio'

on:
push:
branches:
- main

jobs:
publish:
name: 'publish ecma402-biblio'
runs-on: ubuntu-latest
if: ${{ github.repository == 'tc39/ecma402' }}

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

- name: Setup node
uses: actions/setup-node@v3
with:
node-version: 'lts/*'
registry-url: 'https://registry.npmjs.org'

- name: Install dependencies
run: npm ci

- name: Publish biblio
run: scripts/publish-biblio.sh
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN_FOR_TC39_USER }}
4 changes: 4 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
This repository is licensed according to Ecma International TC39's [Intellectual Property Policy](https://github.com/tc39/how-we-work/blob/HEAD/ip.md). In particular:
- Natural language text is licensed under the "Alternative copyright notice" of the [Ecma text copyright policy](https://www.ecma-international.org/memento/Ecma%20copyright%20faq.htm).
- Source code is licensed under Ecma's MIT-style [Ecma International Policy on Submission, Inclusion and Licensing of Software](https://www.ecma-international.org/memento/Policies/Ecma_Policy_on_Submission_Inclusion_and_Licensing_of_Software.htm).
- Contributions are only accepted from either representatives of Ecma members or signatories of TC39's [Contributor Form](https://tc39.github.io/agreements/contributor/).
9 changes: 9 additions & 0 deletions biblio/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# ECMA-402 Bibliography

This package, available on npm as `@tc39/ecma402-biblio`, contains a machine-readable representation of the terms, clauses, grammar, and abstract operations defined in ECMA-402. This will primarily be of use to people working with the specification itself.

If added as a dependency to a project using ecmarkup, you can load it by passing `--load-biblio @tc39/ecma402-biblio`.

It is automatically updated whenever ECMA-402 is. It is inherently unstable: editorial changes to the specification may add, remove, or modify the biblio, which may break your build (for example, if using ecmarkup with `--lint-spec --strict`). As such, **the usual semver guarantees do not hold**. You should pin a precise version of this package.

Major version bumps may be used for breaking changes to the format of the biblio itself. Minor version bumps may be used for non-breaking additions to the biblio format.
19 changes: 19 additions & 0 deletions biblio/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"name": "@tc39/ecma402-biblio",
"version": "VERSIONED-DURING-PUBLISH",
"commit": "POPULATED-DURING-PUBLISH",
"description": "Machine-readable representation of the internals of the ecma-402 spec",
"keywords": [
"ecmascript"
],
"author": "TC39",
"main": "biblio.json",
"exports": {
".": "./biblio.json",
"./package.json": "./package.json"
},
"files": [
"biblio.json"
],
"license": "SEE LICENSE IN LICENSE.md"
}
22 changes: 22 additions & 0 deletions scripts/publish-biblio.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#!/bin/bash

set -euxo pipefail


npx ecmarkup --verbose spec.html --write-biblio biblio/biblio.json /dev/null

cp LICENSE.md biblio/

cd biblio

COMMIT_COUNT=$(git rev-list --count HEAD)
npm version --no-git-tag-version "2.1.${COMMIT_COUNT}"

SHORT_COMMIT=$(git rev-parse --short HEAD)
LONG_COMMIT=$(git rev-parse --verify HEAD)
echo "
This version was built from commit [${SHORT_COMMIT}](https://github.com/tc39/ecma402/tree/${LONG_COMMIT})." >> README.md

npm pkg set commit="${LONG_COMMIT}"

npm publish --access public

0 comments on commit 1b85827

Please sign in to comment.