.github/workflows/publish_prerelease.yml
name: Deploy Tracker Prerelease
on:
workflow_dispatch:
inputs:
version:
description: 'The prerelease tag'
required: true
jobs:
deploy:
runs-on: ubuntu-20.04
env:
NPM_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
BROWSERSLIST_IGNORE_OLD_DATA: true
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Use Node.js 18
uses: actions/setup-node@v3
with:
node-version: 18
- name: pnpm cache
uses: actions/cache@v3
with:
path: ./common/temp/pnpm-store
key: ${{ runner.os }}-pnpm-${{ hashFiles('common/config/rush/pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-pnpm-
- name: Rush Install
run: node common/scripts/install-run-rush.js install
- name: Setup git
uses: oleksiyrudenko/gha-git-credentials@v2.1.1
with:
token: '${{ secrets.GITHUB_TOKEN }}'
name: github-actions[bot]
email: 41898282+github-actions[bot]@users.noreply.github.com
- name: Rush Version
run: node common/scripts/install-run-rush.js version --bump --ignore-git-hooks
- name: Get version
id: version
run: echo "TRACKER_VERSION=$(node -p "require('./trackers/javascript-tracker/package.json').version")" >> $GITHUB_OUTPUT
- name: Fail if version mismatch
if: ${{ github.event.inputs.version != steps.version.outputs.TRACKER_VERSION }}
run: |
echo "Input version (${{ github.event.inputs.version }}) doesn't match version in project (${{ steps.version.outputs.TRACKER_VERSION }})"
exit 1
- name: Rush Build
run: node common/scripts/install-run-rush.js rebuild --verbose
- name: Rush Test
run: node common/scripts/install-run-rush.js test --verbose
- name: Install API Extractor & Documenter
run: npm install -g @microsoft/api-extractor@^7.18.4 @microsoft/api-documenter@^7.13.34
- name: Create API documentation for @snowplow/browser-tracker
working-directory: ./trackers/browser-tracker
run: |
api-extractor run
api-documenter markdown --input-folder temp --output-folder docs/markdown
- name: Create API documentation for @snowplow/node-tracker
working-directory: ./trackers/node-tracker
run: |
api-extractor run
api-documenter markdown --input-folder temp --output-folder docs/markdown
- name: Rush Publish
run: node common/scripts/install-run-rush.js publish --apply --include-all --publish --tag next --set-access-level public --ignore-git-hooks
- name: Generate Release Information
id: tag_version
uses: mathieudutour/github-tag-action@v6.1
with:
dry_run: true
github_token: ${{ secrets.GITHUB_TOKEN }}
tag_prefix: ''
default_bump: false
custom_tag: ${{ github.event.inputs.version }}
- name: Tag release
run: |
git tag -a ${{ steps.tag_version.outputs.new_tag }} -m "Version ${{ steps.tag_version.outputs.new_tag }}"
git push --tags
- name: Zip plugins
run: zip -r plugins.umd.zip ./plugins/*/dist/*.umd*.js*
- name: Release
uses: softprops/action-gh-release@v1
with:
name: Version ${{ steps.tag_version.outputs.new_tag }}
tag_name: ${{ steps.tag_version.outputs.new_tag }}
body: ${{ steps.tag_version.outputs.changelog }}
prerelease: true
files: |
./trackers/javascript-tracker/dist/sp.js
./trackers/javascript-tracker/dist/sp.js.map
./trackers/javascript-tracker/dist/sp.lite.js
./trackers/javascript-tracker/dist/sp.lite.js.map
./plugins.umd.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}