WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

tweak: add puter.perms.requestPermission #3529

tweak: add puter.perms.requestPermission

tweak: add puter.perms.requestPermission #3529

Workflow file for this run

name: test
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
test-backend:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [20.x, 22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Backend Tests (with coverage)
run: |
rm package-lock.json
npm install -g npm@latest
npm install
npm run build
npm run test:backend -- --coverage
- name: Upload backend coverage report
if: ${{ always() && hashFiles('coverage/**/coverage-summary.json') != '' }}
uses: actions/upload-artifact@v4
with:
name: backend-coverage-${{ matrix.node-version }}
path: coverage
retention-days: 5
- name: Publish backend coverage summary
if: ${{ always() && matrix.node-version == '22.x' }}
uses: actions/github-script@v7
with:
script: |
const fs = require('fs');
const path = require('path');
const globModule = require('glob');
const matches = globModule.sync('coverage/**/coverage-summary.json', {
cwd: process.cwd(),
ignore: ['**/node_modules/**'],
});
if (!matches.length) {
core.warning('Coverage summary not found (expected coverage/**/coverage-summary.json). Did Vitest run with --coverage and include the json-summary reporter?');
return;
}
const summaryPath = path.resolve(matches[0]);
const summary = JSON.parse(fs.readFileSync(summaryPath, 'utf8'));
const metrics = ['lines', 'statements', 'branches', 'functions']
.map((key) => ({
label: key.charAt(0).toUpperCase() + key.slice(1),
...summary.total[key],
}));
core.summary
.addHeading('Backend coverage')
.addTable([
['Metric', 'Covered', 'Total', 'Pct'],
...metrics.map(({ label, covered, total, pct }) => [
label,
`${covered}`,
`${total}`,
`${pct}%`,
]),
])
.addRaw('Full HTML report is available in the uploaded `backend-coverage-${{ matrix.node-version }}` artifact.')
.write();
api-test:
name: API tests (node env, api-test)
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
matrix:
node-version: [22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: API Test
run: |
pip install -r ./tests/ci/requirements.txt
./tests/ci/api-test.py
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: (api-test) server-logs
path: /tmp/backend.log
retention-days: 3
vitest:
name: puterjs (node env, vitest)
runs-on: ubuntu-latest
timeout-minutes: 5
strategy:
matrix:
node-version: [22.x]
steps:
- uses: actions/checkout@v4
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
- name: Vitest Test
run: |
pip install -r ./tests/ci/requirements.txt
./tests/ci/vitest.py