Skip to content

Publish

Publish #36

Workflow file for this run

name: Publish
on:
release:
types: [ released ]
workflow_dispatch:
inputs:
skip_tests:
description: 'Skip tests (force release)'
type: boolean
required: true
default: false
pub_sbt:
description: 'Publish JARs'
type: boolean
required: true
default: true
pub_npm:
description: 'Publish NPM (Latest Tag)'
type: boolean
required: true
default: false
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0 # Fetch all history/tags
- uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 8
- uses: actions/setup-node@v3
with:
node-version: 16
registry-url: 'https://registry.npmjs.org'
- name: Build
run: sbt build
- name: Test
if: ${{ !inputs.skip_tests }}
run: sbt test
- name: Publish JARs
if: ${{ github.event_name == 'release' && github.event.action == 'released' || inputs.pub_sbt }}
run: sbt ci-release
env:
PGP_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
PGP_SECRET: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
SONATYPE_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
SONATYPE_USERNAME: ${{ secrets.OSSRH_USERNAME }}
# Only publishes full tagged releases to NPM
- name: Publish NPM
if: ${{ github.event_name == 'release' && github.event.action == 'released' || inputs.pub_npm }}
run: |
npm version --allow-same-version --no-git-tag-version from-git
npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
working-directory: js/npm