Bump the npm-development-dependencies group with 5 updates #241
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Main" | |
on: | |
push: | |
tags: ["*"] | |
branches: ["*"] | |
pull_request: | |
branches: ["*"] | |
schedule: | |
- cron: "25 12 * * 3" | |
workflow_dispatch: | |
permissions: {} | |
jobs: | |
build: | |
name: "Build" | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" | |
- name: "Expose GitHub Actions variables" | |
uses: "actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea" | |
with: | |
script: | | |
for (const [k, v] of Object.entries(process.env)) { | |
if (k.startsWith("ACTIONS_")) core.exportVariable(k, v); | |
} | |
- name: "Set up Docker Buildx" | |
uses: "docker/setup-buildx-action@4fd812986e6c8c2a69e18311145f9371337f27d4" | |
- name: "Use Node.js lts/*" | |
uses: "actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8" | |
with: | |
node-version: "lts/*" | |
cache: "npm" | |
- name: "Install dependencies" | |
run: "npm ci" | |
- name: "Check types" | |
run: "npm run types" | |
- name: "Build module" | |
run: "npm run build:wasm:docker -- --pull --cache-from type=gha --cache-to type=gha,mode=max" | |
- name: "Build docs" | |
run: "npm run docs" | |
- name: "Build demo" | |
if: "startsWith(github.ref, 'refs/tags/v')" | |
run: | | |
cp -a ./dist/ ./demo/dist/ | |
sed -ri 's|"[^"]+/(chafa\.js)"|"../dist/\1"|' ./demo/js/worker.js | |
find ./demo/ -type f -not -perm 0644 -exec chmod 0644 '{}' '+' | |
find ./demo/ -type d -not -perm 0755 -exec chmod 0755 '{}' '+' | |
- name: "Upload module artifact" | |
uses: "actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b" | |
with: | |
name: "dist" | |
path: "./dist/" | |
retention-days: 1 | |
- name: "Upload demo artifact" | |
if: "startsWith(github.ref, 'refs/tags/v')" | |
uses: "actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa" | |
with: | |
path: "./demo/" | |
retention-days: 1 | |
test-node: | |
name: "Test on Node.js ${{ matrix.node_version }} on ${{ matrix.os }}" | |
needs: ["build"] | |
runs-on: "${{ matrix.os }}" | |
permissions: | |
contents: "read" | |
strategy: | |
fail-fast: false | |
matrix: | |
node_version: ["lts/-1", "lts/*", "current"] | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" | |
- name: "Download module artifact" | |
uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" | |
with: | |
name: "dist" | |
path: "./dist/" | |
- name: "Use Node.js ${{ matrix.node_version }}" | |
uses: "actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8" | |
with: | |
node-version: "${{ matrix.node_version }}" | |
cache: "npm" | |
- name: "Install dependencies" | |
run: "npm ci" | |
- name: "Test" | |
run: "npm run test:node" | |
test-deno: | |
name: "Test on Deno ${{ matrix.deno_version }} on ${{ matrix.os }}" | |
needs: ["build"] | |
runs-on: "${{ matrix.os }}" | |
permissions: | |
contents: "read" | |
strategy: | |
fail-fast: false | |
matrix: | |
deno_version: ["vx.x.x"] | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" | |
- name: "Download module artifact" | |
uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" | |
with: | |
name: "dist" | |
path: "./dist/" | |
- name: "Use Deno ${{ matrix.deno_version }}" | |
uses: "denoland/setup-deno@f99b7edee36540f7183c45aad62fbb93d6d41d9d" | |
with: | |
deno-version: "${{ matrix.deno_version }}" | |
- name: "Use Node.js lts/*" | |
uses: "actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8" | |
with: | |
node-version: "lts/*" | |
cache: "npm" | |
- name: "Install dependencies" | |
run: "npm ci" | |
- name: "Test" | |
run: "npm run test:deno" | |
test-bun: | |
name: "Test on Bun ${{ matrix.bun_version }} on ${{ matrix.os }}" | |
needs: ["build"] | |
runs-on: "${{ matrix.os }}" | |
permissions: | |
contents: "read" | |
strategy: | |
fail-fast: false | |
matrix: | |
bun_version: ["latest"] | |
os: ["ubuntu-latest", "windows-latest", "macos-latest"] | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" | |
- name: "Download module artifact" | |
uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" | |
with: | |
name: "dist" | |
path: "./dist/" | |
- name: "Use Bun ${{ matrix.bun_version }}" | |
uses: "oven-sh/setup-bun@123c6c4e2fea3eb7bffaa91a85eb6b3d505bf7af" | |
with: | |
bun-version: "${{ matrix.bun_version }}" | |
- name: "Install dependencies" | |
run: "bun install --frozen-lockfile" | |
- name: "Test" | |
run: "bun run test:bun" | |
test-browser: | |
name: "Test on ${{ matrix.browser }} browser on ${{ matrix.os }}" | |
needs: ["build"] | |
runs-on: "${{ matrix.os }}" | |
permissions: | |
contents: "read" | |
strategy: | |
fail-fast: false | |
matrix: | |
browser: ["chromium", "firefox", "webkit"] | |
os: ["ubuntu-latest"] | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" | |
- name: "Download module artifact" | |
uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" | |
with: | |
name: "dist" | |
path: "./dist/" | |
- name: "Use Node.js lts/*" | |
uses: "actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8" | |
with: | |
node-version: "lts/*" | |
cache: "npm" | |
- name: "Install dependencies" | |
run: 'npm ci && npx playwright install --with-deps "${{ matrix.browser }}"' | |
- name: "Test" | |
run: 'npm run test:browser:"${{ matrix.browser }}"' | |
publish-npm: | |
name: "Publish npm package" | |
if: "startsWith(github.ref, 'refs/tags/v')" | |
needs: ["test-node", "test-deno", "test-bun", "test-browser"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "read" | |
id-token: "write" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332" | |
- name: "Download module artifact" | |
uses: "actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16" | |
with: | |
name: "dist" | |
path: "./dist/" | |
- name: "Use Node.js lts/*" | |
uses: "actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8" | |
with: | |
node-version: "lts/*" | |
registry-url: "https://registry.npmjs.org" | |
- name: "Publish" | |
env: | |
NODE_AUTH_TOKEN: "${{ secrets.NPM_TOKEN }}" | |
run: | | |
PKG_NAME="$(jq -r '.name' ./package.json)"; PKG_VERSION="$(jq -r '.version' ./package.json)" | |
if [ "$(npm view "${PKG_NAME:?}" versions --json | jq -r --arg v "${PKG_VERSION:?}" 'index($v)')" = 'null' ]; then | |
npm publish --provenance --access public | |
fi | |
publish-github-release: | |
name: "Publish GitHub release" | |
if: "startsWith(github.ref, 'refs/tags/v')" | |
needs: ["test-node", "test-deno", "test-bun", "test-browser"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
contents: "write" | |
steps: | |
- name: "Publish" | |
uses: "hectorm/ghaction-release@066200d04c3549852afa243d631ea3dc93390f68" | |
publish-github-pages: | |
name: "Publish GitHub Pages" | |
if: "startsWith(github.ref, 'refs/tags/v')" | |
needs: ["build", "test-node", "test-deno", "test-bun", "test-browser"] | |
runs-on: "ubuntu-latest" | |
permissions: | |
id-token: "write" | |
pages: "write" | |
environment: | |
name: "github-pages" | |
url: "${{ steps.deployment.outputs.page_url }}" | |
steps: | |
- name: "Publish" | |
id: "deployment" | |
uses: "actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e" |