Update draft features (#2201) #198
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish web-features@next | |
on: | |
push: | |
branches: | |
- "main" | |
paths: | |
- features/** | |
- groups/** | |
- packages/web-features/** | |
- snapshots/** | |
- index.ts | |
- scripts/build.ts | |
permissions: | |
contents: write | |
env: | |
package: "web-features" | |
package_dir: "packages/web-features" | |
dist_tag: "next" | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
cache: npm | |
- run: npm ci | |
- run: npm test | |
publish: | |
if: github.repository == 'web-platform-dx/web-features' | |
runs-on: ubuntu-latest | |
needs: "test" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get timestamp and short hash | |
id: timestamp_and_hash | |
run: | | |
echo "TIMESTAMP=$(date +'%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT | |
echo "SHORT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: .node-version | |
cache: npm | |
registry-url: "https://registry.npmjs.org" | |
- run: npm ci | |
- run: npm run build | |
- run: npm run build:extended | |
- name: Get package.json version | |
id: version | |
run: echo "VERSION=$(npm version --json | jq --raw-output '.["${{ env.package }}"]')" >> $GITHUB_OUTPUT | |
working-directory: ${{ env.package_dir }} | |
- run: npm install | |
working-directory: ${{ env.package_dir }} | |
- run: npm version --no-git-tag-version "$VERSION-dev-$TIMESTAMP-$SHORT_HASH" | |
# The version string template is: <package.json version>-dev-<timestamp>-<commit-hash> | |
# Why not use SemVer build metadata with a plus sign for some of this? | |
# Because npm completely ignores it. 😒 | |
working-directory: ${{ env.package_dir }} | |
env: | |
VERSION: ${{ steps.version.outputs.VERSION }} | |
TIMESTAMP: ${{ steps.timestamp_and_hash.outputs.TIMESTAMP }} | |
SHORT_HASH: ${{ steps.timestamp_and_hash.outputs.SHORT_HASH }} | |
- run: npm publish --tag ${{ env.dist_tag }} | |
working-directory: ${{ env.package_dir }} | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Publish pre-release on GitHub | |
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 #v2.0.8 | |
with: | |
files: | | |
schemas/data.schema.json | |
${{ env.package_dir }}/data.json | |
data.extended.json | |
prerelease: true | |
name: web-features@next | |
body: This is a continuously-updated prerelease generated from `main` (currently at ${{ steps.timestamp_and_hash.outputs.SHORT_HASH }}). | |
tag_name: ${{ env.dist_tag }} | |
fail_on_unmatched_files: true |