Skip to content

Merge pull request #438 from nansen-ai/changeset-release/main #1240

Merge pull request #438 from nansen-ai/changeset-release/main

Merge pull request #438 from nansen-ai/changeset-release/main #1240

Workflow file for this run

name: CI
# WARNING: Do not rename this file. The filename (ci.yml) is registered in the
# npmjs Trusted Publishing configuration (org + repo + workflow file). Renaming
# it will break OIDC authentication and npm publishes will fail silently or with
# a 401. If you must rename it, update the workflow name in npmjs first.
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions: {}
jobs:
lint:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
cache: 'npm'
- run: npm ci
- run: npm run lint
test:
runs-on: ubuntu-latest
permissions:
contents: read
strategy:
matrix:
node-version: [18, 20, 22]
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
publish:
needs: [lint, test]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
outputs:
published: ${{ steps.changesets.outputs.published }}
permissions:
contents: write
pull-requests: write
id-token: write
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 24
registry-url: 'https://registry.npmjs.org'
- run: npm ci
- name: Create Release Pull Request or Publish
id: changesets
uses: changesets/action@6a0a831ff30acef54f2c6aa1cbbc1096b066edaf # v1.7.0
with:
version: npm run changeset:version
publish: npm run changeset:publish
createGithubReleases: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
sync-clawhub:
needs: publish
if: needs.publish.outputs.published == 'true'
permissions:
contents: read
uses: ./.github/workflows/sync-clawhub.yml
secrets:
CLAWHUB_TOKEN: ${{ secrets.CLAWHUB_TOKEN }}