Skip to content

Commit fddc998

Browse files
authored
feat(cicd,scripts): rely on npx over npm (#195)
* feat(cicd,scripts): rely on npx over npm * fixup!
1 parent 53e3722 commit fddc998

File tree

5 files changed

+41
-165
lines changed

5 files changed

+41
-165
lines changed

.github/workflows/create-meeting-artifacts-manual.yml

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,18 @@ on:
66
meeting_group:
77
description: 'Meeting group to create artifacts for'
88
required: true
9-
type: choice
10-
options:
11-
- benchmarking
12-
- build
13-
- cross_project_council
14-
- diag
15-
- diag_deepdive
16-
- ecosystem_report
17-
- loaders
18-
- modules
19-
- next-10
20-
- outreach
21-
- package-maintenance
22-
- package_metadata_interop
23-
- Release
24-
- security-wg
25-
- security_collab
26-
- standards
27-
- sustainability_collab
28-
- tsc
29-
- tooling
30-
- typescript
31-
- uvwasi
32-
- userfeedback
33-
- web-server-frameworks
9+
type: string
10+
dry_run:
11+
type: boolean
12+
description: 'Dry run?'
13+
default: false
14+
required: true
15+
workflow_call:
16+
inputs:
17+
meeting_group:
18+
description: 'Meeting group to create artifacts for'
19+
required: true
20+
type: string
3421
dry_run:
3522
type: boolean
3623
description: 'Dry run?'

.github/workflows/create-meeting-artifacts-scheduled.yml

Lines changed: 23 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -2,81 +2,37 @@ name: Create Meeting Artifacts (Scheduled)
22

33
on:
44
workflow_dispatch:
5+
inputs:
6+
dry_run:
7+
type: boolean
8+
description: 'Dry run?'
9+
default: false
10+
required: true
511
schedule:
612
- cron: '0 10 * * 1'
713

814
jobs:
9-
create-artifacts:
15+
create-matrix:
1016
runs-on: ubuntu-latest
11-
strategy:
12-
fail-fast: false
13-
matrix:
14-
meeting_group:
15-
- benchmarking
16-
- build
17-
- cross_project_council
18-
- diag
19-
- diag_deepdive
20-
- ecosystem_report
21-
- loaders
22-
- modules
23-
- next-10
24-
- outreach
25-
- package-maintenance
26-
- package_metadata_interop
27-
- Release
28-
- security-wg
29-
- security_collab
30-
- standards
31-
- sustainability_collab
32-
- tsc
33-
- tooling
34-
- typescript
35-
- uvwasi
36-
- userfeedback
37-
- web-server-frameworks
17+
outputs:
18+
groups: ${{ steps.set-matrix.outputs.configs }}
3819
steps:
3920
- name: Checkout repository
4021
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
4122

42-
- name: Setup Node.js
43-
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
44-
with:
45-
node-version-file: '.nvmrc'
46-
cache: 'npm'
47-
48-
- name: Install dependencies
49-
run: npm ci
50-
51-
- name: Read Meeting Variables
52-
id: read-vars
23+
- name: Get config basenames
24+
id: set-matrix
5325
run: |
54-
meeting_group="${{ matrix.meeting_group }}"
55-
user=$(grep '^USER=' "templates/meeting_base_${meeting_group}" | cut -d'=' -f2 | xargs)
56-
echo "user=$user" >> $GITHUB_OUTPUT
26+
CONFIGS=$(find templates/ -maxdepth 1 -type f -name 'meeting_base_*' | jq -R -s -c 'split("\n")[:-1] | map(sub(".*meeting_base_";""))')
27+
echo "configs=$CONFIGS" >> $GITHUB_OUTPUT
5728
58-
- name: Create GitHub App Token
59-
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
60-
id: app-token
61-
with:
62-
app-id: ${{ secrets.BOT_ID }}
63-
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
64-
owner: ${{ steps.read-vars.outputs.user }}
65-
66-
- name: Create meeting artifacts
67-
env:
68-
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
69-
HACKMD_API_TOKEN: ${{ secrets.HACKMD_API_TOKEN }}
70-
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
71-
run: node create-node-meeting-artifacts.mjs ${{ matrix.meeting_group }} --verbose
72-
73-
- name: Upload artifacts
74-
if: always()
75-
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
76-
with:
77-
name: meeting-artifacts-${{ matrix.meeting_group }}
78-
path: |
79-
~/.make-node-meeting/
80-
*.md
81-
retention-days: 7
82-
if-no-files-found: ignore
29+
create-artifacts:
30+
needs: create-matrix
31+
strategy:
32+
fail-fast: false
33+
matrix:
34+
groups: ${{ fromJson(needs.create-matrix.outputs.groups) }}
35+
uses: ./.github/workflows/create-meeting-artifacts-manual.yml
36+
with:
37+
meeting_group: ${{ matrix.groups }}
38+
dry_run: ${{ github.event.inputs.dry_run }}

README.md

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -39,31 +39,6 @@ A modern Node.js application that creates GitHub issues and HackMD documents for
3939

4040
**Note:** API Keys provide simplified authentication and are sufficient for read-only calendar access. They don't require complex OAuth flows or service account setup.
4141

42-
## 🎯 Available Meeting Commands
43-
44-
| Meeting Group | Production Command | Development Command |
45-
| ------------------------ | ------------------------------------------ | ---------------------------------------------- |
46-
| UVWASI | `npm run uvwasi-meeting` | `npm run uvwasi-meeting:dev` |
47-
| TSC | `npm run tsc-meeting` | `npm run tsc-meeting:dev` |
48-
| Build | `npm run build-meeting` | `npm run build-meeting:dev` |
49-
| Diagnostics | `npm run diag-meeting` | `npm run diag-meeting:dev` |
50-
| Diagnostics Deep Dive | `npm run diag-deepdive-meeting` | `npm run diag-deepdive-meeting:dev` |
51-
| TypeScript | `npm run typescript-meeting` | `npm run typescript-meeting:dev` |
52-
| Release | `npm run release-meeting` | `npm run release-meeting:dev` |
53-
| Cross Project Council | `npm run cross-project-council-meeting` | `npm run cross-project-council-meeting:dev` |
54-
| Modules | `npm run modules-meeting` | `npm run modules-meeting:dev` |
55-
| Tooling | `npm run tooling-meeting` | `npm run tooling-meeting:dev` |
56-
| Security WG | `npm run security-wg-meeting` | `npm run security-wg-meeting:dev` |
57-
| Next-10 | `npm run next-10-meeting` | `npm run next-10-meeting:dev` |
58-
| Package Maintenance | `npm run package-maintenance-meeting` | `npm run package-maintenance-meeting:dev` |
59-
| Package Metadata Interop | `npm run package-metadata-interop-meeting` | `npm run package-metadata-interop-meeting:dev` |
60-
| Ecosystem Report | `npm run ecosystem-report-meeting` | `npm run ecosystem-report-meeting:dev` |
61-
| Sustainability Collab | `npm run sustainability-collab-meeting` | `npm run sustainability-collab-meeting:dev` |
62-
| Standards | `npm run standards-meeting` | `npm run standards-meeting:dev` |
63-
| Security Collab | `npm run security-collab-meeting` | `npm run security-collab-meeting:dev` |
64-
| Loaders | `npm run loaders-meeting` | `npm run loaders-meeting:dev` |
65-
| Web Server Frameworks | `npm run web-server-frameworks-meeting` | `npm run web-server-frameworks-meeting:dev` |
66-
6742
## 📁 Project Structure
6843

6944
```
@@ -204,10 +179,10 @@ npm run check # Run both linting and formatting checks
204179
### Local Development
205180

206181
```bash
207-
# Using npm scripts (recommended)
208-
npm run tsc-meeting:dev
182+
# Using npx
183+
npx --env-file=.env . tsc
209184
210-
# Direct execution
185+
# Direct execution (with a `.env` file)
211186
node --env-file=.env create-node-meeting-artifacts.mjs tsc
212187
```
213188

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"type": "module",
66
"main": "create-node-meeting-artifacts.mjs",
77
"bin": {
8-
"create-meeting": "./create-node-meeting-artifacts.mjs"
8+
"create-node-meeting-artifacts": "./create-node-meeting-artifacts.mjs"
99
},
1010
"engines": {
1111
"node": ">=22.0.0"
@@ -36,49 +36,7 @@
3636
"check": "npm run lint && npm run format:check",
3737
"test": "node --test test/**/*.test.mjs",
3838
"test:watch": "node --test --watch test/**/*.test.mjs",
39-
"test:coverage": "node --test --experimental-test-coverage test/**/*.test.mjs",
40-
"uvwasi-meeting": "create-meeting uvwasi",
41-
"uvwasi-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs uvwasi",
42-
"tsc-meeting": "create-meeting tsc",
43-
"tsc-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs tsc",
44-
"build-meeting": "create-meeting build",
45-
"build-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs build",
46-
"diag-meeting": "create-meeting diag",
47-
"diag-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs diag",
48-
"diag-deepdive-meeting": "create-meeting diag_deepdive",
49-
"diag-deepdive-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs diag_deepdive",
50-
"typescript-meeting": "create-meeting typescript",
51-
"typescript-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs typescript",
52-
"release-meeting": "create-meeting Release",
53-
"release-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs Release",
54-
"cross-project-council-meeting": "create-meeting cross_project_council",
55-
"cross-project-council-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs cross_project_council",
56-
"modules-meeting": "create-meeting modules",
57-
"modules-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs modules",
58-
"tooling-meeting": "create-meeting tooling",
59-
"tooling-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs tooling",
60-
"security-wg-meeting": "create-meeting security-wg",
61-
"security-wg-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs security-wg",
62-
"next-10-meeting": "create-meeting next-10",
63-
"next-10-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs next-10",
64-
"package-maintenance-meeting": "create-meeting package-maintenance",
65-
"package-maintenance-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs package-maintenance",
66-
"package-metadata-interop-meeting": "create-meeting package_metadata_interop",
67-
"package-metadata-interop-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs package_metadata_interop",
68-
"ecosystem-report-meeting": "create-meeting ecosystem_report",
69-
"ecosystem-report-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs ecosystem_report",
70-
"sustainability-collab-meeting": "create-meeting sustainability_collab",
71-
"sustainability-collab-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs sustainability_collab",
72-
"standards-meeting": "create-meeting standards",
73-
"standards-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs standards",
74-
"security-collab-meeting": "create-meeting security_collab",
75-
"security-collab-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs security_collab",
76-
"loaders-meeting": "create-meeting loaders",
77-
"loaders-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs loaders",
78-
"web": "create-meeting web",
79-
"web:dev": "node --env-file=.env create-node-meeting-artifacts.mjs web",
80-
"web-server-frameworks-meeting": "create-meeting web-server-frameworks",
81-
"web-server-frameworks-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs web-server-frameworks"
39+
"test:coverage": "node --test --experimental-test-coverage test/**/*.test.mjs"
8240
},
8341
"author": "",
8442
"license": "MIT"

0 commit comments

Comments
 (0)