Skip to content

feat: first draft of observers #1645

feat: first draft of observers

feat: first draft of observers #1645

Workflow file for this run

name: main
on:
push:
branches:
- main
- feat/interactivity-stable
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
- name: ⎔ Setup pnpm@v9
uses: pnpm/action-setup@v4
- name: ⎔ Setup Node@v20
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 20
- name: 📥 Download deps
run: pnpm install
- name: 🏗 Build
run: pnpm build
- name: 🔍 Verify types
run: pnpm type-check
- name: 🕵️ Lint
run: pnpm lint:prod
- name: 💅 Verify format (`pnpm format` committed?)
run: pnpm format
- name: 🛡️ Test
run: |
npx playwright install --with-deps chromium
pnpm test:coverage
- name: 📏 Report coverage (web)
if: always() && github.event_name == 'pull_request'
uses: davelosert/vitest-coverage-report-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
working-directory: packages/web
name: '@lottiefiles/dotlottie-web'
- name: 📏 Report coverage (react)
if: always() && github.event_name == 'pull_request'
uses: davelosert/vitest-coverage-report-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
working-directory: packages/react
name: '@lottiefiles/dotlottie-react'
- name: 📏 Report coverage (wc)
if: always() && github.event_name == 'pull_request'
uses: davelosert/vitest-coverage-report-action@v2
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
working-directory: packages/wc
name: '@lottiefiles/dotlottie-wc'
- name: 📏 Report bundle size
if: github.event_name == 'pull_request'
uses: andresz1/size-limit-action@v1
continue-on-error: true
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
npm-release:
name: npm-release
needs: validate
runs-on: ubuntu-latest
if: ${{ github.repository == 'LottieFiles/dotlottie-web' && github.event_name == 'push' }}
permissions:
# Allow creating a release in the repository
contents: write
# Required for provenance
id-token: write
packages: write
# Required for creating a release PR
pull-requests: write
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
with:
# https://github.com/changesets/action/issues/201#issuecomment-1206088289
# check out all commits and tags so changeset can skip duplicate tags
fetch-depth: 0
- name: ⎔ Setup pnpm@v9
uses: pnpm/action-setup@v4
- name: ⎔ Setup Node@v20
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 20
registry-url: https://registry.npmjs.org
- name: 📥 Install dependencies
run: pnpm install
env:
NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}
- name: 🚀 Release to NPM
uses: changesets/action@v1
with:
commit: 'chore: 🤖 update versions'
title: 'chore: 🤖 update versions'
publish: pnpm release:publish
version: pnpm release:version
createGithubReleases: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPMJS_TOKEN }}
- name: Remove existing NPM .npmrc
run: rm -f "$HOME/.npmrc"
gpr-release:
name: gpr-release
needs: validate
runs-on: ubuntu-latest
if: ${{ github.repository == 'LottieFiles/dotlottie-web' && github.event_name == 'push' }}
permissions:
# Allow creating a release in the repository
contents: write
# Required for provenance
id-token: write
packages: write
# Required for creating a release PR
pull-requests: write
steps:
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: ⎔ Setup pnpm@v9
uses: pnpm/action-setup@v4
- name: ⎔ Setup Node@v20
uses: actions/setup-node@v4
with:
cache: pnpm
node-version: 20
registry-url: https://npm.pkg.github.com/
- name: 📥 Install dependencies
run: pnpm install
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: 🚀 Release to Github Packages
uses: changesets/action@v1
with:
commit: 'chore: update versions'
title: 'chore: update versions'
publish: pnpm release:publish
version: pnpm release:version
createGithubReleases: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# jsr-release:
# name: jsr-release
# needs: validate
# runs-on: ubuntu-latest
# if: ${{ github.repository == 'LottieFiles/dotlottie-web' && github.event_name == 'push' }}
# permissions:
# contents: read
# id-token: write
# steps:
# - name: ⬇️ Checkout repo
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# # related issue https://github.com/denoland/deno/issues/26152
# - name: ⎔ Setup .npmrc (NPM) in web package
# run: |
# echo "@lottiefiles:registry=https://registry.npmjs.org/" >> ./packages/web/.npmrc
# echo "//registry.npmjs.org/:_authToken=${{ secrets.NPMJS_TOKEN }}" >> ./packages/web/.npmrc
# - name: 🔄 Sync version to jsr.json
# run: |
# VERSION=$(jq -r '.version' ./packages/web/package.json)
# jq '.version = $newVersion' --arg newVersion "$VERSION" ./packages/web/jsr.json > temp.json
# mv temp.json ./packages/web/jsr.json
# cat ./packages/web/jsr.json
# - name: 🚀 Release to JSR
# run: npx jsr publish --allow-dirty
# working-directory: packages/web
# publish-viewer:
# name: publish-viewer
# needs: validate
# runs-on: ubuntu-latest
# if:
# ${{ github.repository == 'LottieFiles/dotlottie-web' && github.event_name == 'push' && github.ref ==
# 'refs/heads/main' }}
# permissions:
# contents: write
# pages: write
# steps:
# - name: ⬇️ Checkout repo
# uses: actions/checkout@v4
# with:
# fetch-depth: 0
# - name: ⎔ Setup pnpm@v9
# uses: pnpm/action-setup@v4
# - name: ⎔ Setup Node@v20
# uses: actions/setup-node@v4
# with:
# cache: pnpm
# node-version: 20
# registry-url: https://npm.pkg.github.com/
# - name: 📥 Install dependencies
# run: pnpm install
# env:
# NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: 🏗 Build
# run: pnpm build
# env:
# NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - name: 🌐 Publish
# if: success()
# uses: peaceiris/actions-gh-pages@v4
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: ./apps/dotlottie-viewer/dist