Skip to content

fix(log): ensure series expansion can handle small x values #90

fix(log): ensure series expansion can handle small x values

fix(log): ensure series expansion can handle small x values #90

Workflow file for this run

name: CI + Publish
on:
push:
branches:
- main
tags:
- "*"
pull_request:
branches:
- main
workflow_dispatch:
inputs:
check:
type: boolean
description: "Run lint, fmt, and test?"
required: false
default: true
publish-jsr:
type: boolean
description: "Publish to JSR?"
required: false
default: true
publish-npm:
type: boolean
description: "Publish to NPM?"
required: false
default: true
publish-gpr:
type: boolean
description: "Publish to GPR?"
required: false
default: true
release:
type: boolean
description: "Create a new GitHub Release?"
required: false
default: false
release-title:
type: string
description: |
Release title template ('{0}' -> $GITHUB_REF_NAME)
required: false
default: "{0}"
release-tag:
type: string
description: |
Git tag to create the release for ('{0}' -> $GITHUB_REF_NAME)
required: false
default: "{0}"
release-draft:
type: boolean
description: "Should the release be a draft?"
required: false
default: false
release-discussion-category:
type: string
description: "Discussion category for announcing new Releases"
required: false
default: "Releases"
release-assets:
type: string
description: "Glob pattern for assets to attach to the Release"
required: false
jobs:
check:
if: inputs.check == 'true' || github.event_name != 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- id: ok
run: deno task ok
- if: success()
run: |
if [ -d .coverage ]; then
cp -r .coverage coverage
else
exit 1
fi
- id: coveralls
if: success()
continue-on-error: true
uses: coverallsapp/github-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
file: .coverage/lcov.info
- id: coverage
if: success()
continue-on-error: true
uses: actions/upload-artifact@v6
with:
path: coverage
name: nberlette-math-coverage_${{ github.ref_name }}-${{ github.sha }}
publish:
if: |
(github.event_name == 'push' &&
startsWith(github.ref, 'refs/tags/') &&
needs.check.result == 'success') ||
(github.event_name == 'workflow_dispatch' && (
inputs.publish-jsr == 'true' ||
inputs.publish-npm == 'true' ||
inputs.publish-gpr == 'true'
) && (needs.check.result == 'success' || inputs.check == 'false'))
runs-on: ubuntu-latest
needs: check
permissions:
contents: write
id-token: write
packages: write
concurrency:
cancel-in-progress: true
group: publish-${{ github.ref_name }}
env:
IS_TAG: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') }}
IS_DISPATCHED: ${{ github.event_name == 'workflow_dispatch' }}
PUBLISH_JSR: ${{ (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && needs.check.result == 'success') || (github.event_name == 'workflow_dispatch' && inputs.publish-jsr == 'true') }}
PUBLISH_NPM: ${{ (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && needs.check.result == 'success') || (github.event_name == 'workflow_dispatch' && inputs.publish-npm == 'true') }}
PUBLISH_GPR: ${{ (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && needs.check.result == 'success') || (github.event_name == 'workflow_dispatch' && inputs.publish-gpr == 'true') }}
RELEASE_TITLE: ${{ format(inputs.release-title || '{0}', github.ref_name) }}
RELEASE_TAG: ${{ format(inputs.release-tag || '{0}', github.ref_name) }}
steps:
- uses: actions/checkout@v6
- name: "setup deno"
uses: denoland/setup-deno@v2
with:
deno-version: v2.x
- if: env.PUBLISH_JSR
name: "publish to jsr"
continue-on-error: true
run: deno publish
- if: env.PUBLISH_NPM
name: "setup node for npm"
uses: actions/setup-node@v6
with:
node-version: 24
registry-url: "https://registry.npmjs.org"
- id: build
if: env.PUBLISH_NPM || env.PUBLISH_GPR
name: "build for npm"
run: deno task build
env:
NO_PUBLISH: 1
- id: artifact
if: steps.build.outcome == 'success'
continue-on-error: true
uses: actions/upload-artifact@v6
with:
path: npm
name: nberlette-math-npm_${{ github.ref_name }}-${{ github.sha }}
- if: env.PUBLISH_NPM
name: "publish to npm"
continue-on-error: true
run: npm publish --access public
working-directory: npm
- if: env.PUBLISH_GPR
name: "setup node for gpr"
uses: actions/setup-node@v6
with:
node-version: 24
registry-url: "https://npm.pkg.github.com"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- if: env.PUBLISH_GPR
name: "publish to gpr"
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.GITHUB_TOKEN }}
continue-on-error: true
working-directory: npm
run: npm publish --access public --registry https://npm.pkg.github.com
- if: inputs.release != 'false' && (env.IS_TAG || github.ref_type == 'tag')
id: release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# shellcheck disable=SC2086,SC2206
ASSETS=(${INPUT_RELEASE_ASSETS:-})
if [ ${#ASSETS[@]} -eq 0 ]; then
if [ -d npm ]; then
(cd npm && npm pack 2>/dev/null)
ASSETS+=(./npm/*.tgz)
fi
fi
DRAFT=""
if [[ "${INPUT_RELEASE_DRAFT:-false}" == "true" ]]; then
DRAFT=true
fi
gh release create --title "${RELEASE_TITLE:-$GITHUB_REF_NAME}" --generate-notes --discussion-category "${INPUT_RELEASE_DISCUSSION_CATEGORY:-Releases}" "${DRAFT:+--draft}" "${RELEASE_TAG:-$GITHUB_REF_NAME}" "${ASSETS[@]}"