Skip to content

chore(release): 0.11.3 #260

chore(release): 0.11.3

chore(release): 0.11.3 #260

Workflow file for this run

# managed-by-autotool
name: cicd
on:
push:
branches: '**'
pull_request:
branches: '**'
env:
TURBO_TOKEN: ${{ secrets.VERCEL_TOKEN }}
TURBO_TEAM: ${{ vars.TURBO_TEAM }}
TURBO_REMOTE_ONLY: true
BUILD_REASON: 'publish' # publint would like to see the .d.ts files
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true
jobs:
collect:
runs-on: ubuntu-latest
outputs:
non_published_packages:
${{ steps.collect_packages.outputs.non_published_packages }}
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: true
lfs: true
- name: collect public packages
id: collect_packages
uses: AlexAegis/collect-public-packages@v2
check-pages:
runs-on: ubuntu-latest
outputs:
pages_enabled: ${{ steps.check_pages.outputs.is_enabled }}
steps:
- name: check if github pages is enabled
id: check_pages
uses: AlexAegis/check-github-pages@v1
lint:
name: lint:${{ matrix.lint-kind }}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
lint-kind: [tsc, es, md, format, style, svelte, depcheck]
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: true
lfs: true
- name: setup node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: pnpm setup
uses: pnpm/action-setup@v3
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: cache
id: cache
uses: actions/cache@v4
with:
path: |
${{ steps.pnpm-cache.outputs.STORE_PATH }}
.cache
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- name: install
run: pnpm install
- name: lint:${{ matrix.lint-kind }}
run: pnpm run lint:${{ matrix.lint-kind }}
typedoc:
name: typedoc
runs-on: ubuntu-latest
needs: [check-pages]
if: needs.check-pages.outputs.pages_enabled == 'true'
strategy:
matrix:
node-version: [20.x]
steps:
- name: checkout
uses: actions/checkout@v4
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
with:
fetch-depth: 1
submodules: true
lfs: true
- name: setup node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
with:
node-version: ${{ matrix.node-version }}
- name: pnpm setup
uses: pnpm/action-setup@v3
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: cache
id: cache
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
uses: actions/cache@v4
with:
path: |
${{ steps.pnpm-cache.outputs.STORE_PATH }}
.cache
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- name: install
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
run: pnpm install
- name: typedoc
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc'
run: pnpm run typedoc
- name: prepare pages (use index.html as 404.html)
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
run: |
cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html
- name: setup pages
uses: actions/configure-pages@v4
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
- name: upload artifact
uses: actions/upload-pages-artifact@v3
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
with:
path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}
vitepress:
name: vitepress
runs-on: ubuntu-latest
needs: [check-pages]
if: needs.check-pages.outputs.pages_enabled == 'true'
strategy:
matrix:
node-version: [20.x]
steps:
- name: checkout
uses: actions/checkout@v4
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
with:
fetch-depth: 1
submodules: true
lfs: true
- name: setup node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
with:
node-version: ${{ matrix.node-version }}
- name: pnpm setup
uses: pnpm/action-setup@v3
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: cache
id: cache
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
uses: actions/cache@v4
with:
path: |
${{ steps.pnpm-cache.outputs.STORE_PATH }}
.cache
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- name: install
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
run: pnpm install
- name: vitepress
if: vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
run: pnpm run vitepress
- name: prepare pages (use index.html as 404.html)
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
run: |
cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html
- name: setup pages
uses: actions/configure-pages@v4
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
- name: upload artifact
uses: actions/upload-pages-artifact@v3
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
with:
path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}
test:
name: test
runs-on: ubuntu-latest
needs: [check-pages]
strategy:
matrix:
node-version: [20.x]
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: true
lfs: true
- name: setup node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: pnpm setup
uses: pnpm/action-setup@v3
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: cache
id: cache
uses: actions/cache@v4
with:
path: |
${{ steps.pnpm-cache.outputs.STORE_PATH }}
.cache
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- name: install
run: pnpm install
- name: test
run: pnpm run test
- name: upload coverage result to codacy
uses: codacy/codacy-coverage-reporter-action@v1
with:
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
coverage-reports: coverage/lcov.info
language: ${{ vars.CODACY_REPORT_LANGUAGE }}
- name: upload coverage result to codecov
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: coverage
- name: prepare pages (use index.html as 404.html)
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
run: |
cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html
- name: setup pages
uses: actions/configure-pages@v4
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
- name: upload artifact
uses: actions/upload-pages-artifact@v3
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
with:
path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}
build:
name: build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x]
steps:
- name: checkout
uses: actions/checkout@v4
with:
fetch-depth: 1
submodules: true
lfs: true
- name: setup node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: pnpm setup
uses: pnpm/action-setup@v3
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: cache
id: cache
uses: actions/cache@v4
with:
path: |
${{ steps.pnpm-cache.outputs.STORE_PATH }}
.cache
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- name: install
run: pnpm install
- name: build
env:
BASE_HREF: '/${{ github.event.repository.name }}'
PLATFORM: 'github-pages'
run: pnpm run build
- name: publint
run: pnpm run publint
- name: prepare pages (use index.html as 404.html)
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
run: |
cp ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/index.html ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}/404.html
- name: setup pages
uses: actions/configure-pages@v4
if: |
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
- name: upload artifact
uses: actions/upload-pages-artifact@v3
if: |
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR != '' &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
with:
path: ${{ vars.PAGES_DEPLOY_ARTIFACT_DIR }}
deploy-github-pages:
name: deploy github pages
if: |
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request' &&
needs.check-pages.outputs.pages_enabled == 'true' &&
vars.PAGES_DEPLOY_ARTIFACT_DIR && (
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'build' ||
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'test' ||
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'typedoc' ||
vars.PAGES_DEPLOY_ARTIFACT_BUILDING_JOB == 'vitepress'
)
runs-on: ubuntu-latest
needs: [build, test, lint, typedoc, vitepress, check-pages]
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: deploy to github pages
uses: actions/deploy-pages@v4
id: deployment
release:
name: |
release ${{ matrix.package.package_name }}@${{ matrix.package.package_version }}
if: |
needs.collect.outputs.non_published_packages &&
github.ref_name == github.event.repository.default_branch &&
github.event_name != 'pull_request'
runs-on: ubuntu-latest
needs: [collect, build, test, lint, typedoc, vitepress]
strategy:
matrix:
package: ${{ fromJSON(needs.collect.outputs.non_published_packages) }}
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup node.js
uses: actions/setup-node@v4
with:
node-version: 18
registry-url: 'https://registry.npmjs.org'
- name: pnpm setup
uses: pnpm/action-setup@v3
with:
run_install: false
- name: get pnpm store directory
id: pnpm-cache
run: |
echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT
- name: cache
id: cache
uses: actions/cache@v4
with:
path: |
${{ steps.pnpm-cache.outputs.STORE_PATH }}
.cache
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-
- name: install
run: pnpm install
- name: |
build ${{ matrix.package.package_name }}@${{ matrix.package.package_version }}
run: |
npx turbo run build-lib_ --force --filter="${{ matrix.package.package_name }}" --concurrency 16 --cache-dir=.cache/turbo
- name: |
publint ${{ matrix.package.package_name }}@${{ matrix.package.package_version }}
run: |
npx turbo run publint_ --filter="${{ matrix.package.package_name }}" --concurrency 16 --cache-dir=.cache/turbo
- name: |
release ${{ matrix.package.package_name }}@${{ matrix.package.package_version }} on npm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
pnpm publish --access public --provenance ${{ matrix.package.package_path_from_root_package }}/dist/