Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 12 additions & 25 deletions .github/workflows/create-meeting-artifacts-manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,31 +6,18 @@ on:
meeting_group:
description: 'Meeting group to create artifacts for'
required: true
type: choice
options:
- benchmarking
- build
- cross_project_council
- diag
- diag_deepdive
- ecosystem_report
- loaders
- modules
- next-10
- outreach
- package-maintenance
- package_metadata_interop
- Release
- security-wg
- security_collab
- standards
- sustainability_collab
- tsc
- tooling
- typescript
- uvwasi
- userfeedback
- web-server-frameworks
type: string
dry_run:
type: boolean
description: 'Dry run?'
default: false
required: true
workflow_call:
inputs:
meeting_group:
description: 'Meeting group to create artifacts for'
required: true
type: string
dry_run:
type: boolean
description: 'Dry run?'
Expand Down
90 changes: 23 additions & 67 deletions .github/workflows/create-meeting-artifacts-scheduled.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,81 +2,37 @@ name: Create Meeting Artifacts (Scheduled)

on:
workflow_dispatch:
inputs:
dry_run:
type: boolean
description: 'Dry run?'
default: false
required: true
schedule:
- cron: '0 10 * * 1'

jobs:
create-artifacts:
create-matrix:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
meeting_group:
- benchmarking
- build
- cross_project_council
- diag
- diag_deepdive
- ecosystem_report
- loaders
- modules
- next-10
- outreach
- package-maintenance
- package_metadata_interop
- Release
- security-wg
- security_collab
- standards
- sustainability_collab
- tsc
- tooling
- typescript
- uvwasi
- userfeedback
- web-server-frameworks
outputs:
groups: ${{ steps.set-matrix.outputs.configs }}
steps:
- name: Checkout repository
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- name: Setup Node.js
uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: '.nvmrc'
cache: 'npm'

- name: Install dependencies
run: npm ci

- name: Read Meeting Variables
id: read-vars
- name: Get config basenames
id: set-matrix
run: |
meeting_group="${{ matrix.meeting_group }}"
user=$(grep '^USER=' "templates/meeting_base_${meeting_group}" | cut -d'=' -f2 | xargs)
echo "user=$user" >> $GITHUB_OUTPUT
CONFIGS=$(find templates/ -maxdepth 1 -type f -name 'meeting_base_*' | jq -R -s -c 'split("\n")[:-1] | map(sub(".*meeting_base_";""))')
echo "configs=$CONFIGS" >> $GITHUB_OUTPUT

- name: Create GitHub App Token
uses: actions/create-github-app-token@67018539274d69449ef7c02e8e71183d1719ab42 # v2.1.4
id: app-token
with:
app-id: ${{ secrets.BOT_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
owner: ${{ steps.read-vars.outputs.user }}

- name: Create meeting artifacts
env:
GITHUB_TOKEN: ${{ steps.app-token.outputs.token }}
HACKMD_API_TOKEN: ${{ secrets.HACKMD_API_TOKEN }}
GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }}
run: node create-node-meeting-artifacts.mjs ${{ matrix.meeting_group }} --verbose

- name: Upload artifacts
if: always()
uses: actions/upload-artifact@50769540e7f4bd5e21e526ee35c689e35e0d6874 # v4.4.0
with:
name: meeting-artifacts-${{ matrix.meeting_group }}
path: |
~/.make-node-meeting/
*.md
retention-days: 7
if-no-files-found: ignore
create-artifacts:
needs: create-matrix
strategy:
fail-fast: false
matrix:
groups: ${{ fromJson(needs.create-matrix.outputs.groups) }}
uses: ./.github/workflows/create-meeting-artifacts-manual.yml
with:
meeting_group: ${{ matrix.groups }}
dry_run: ${{ github.event.inputs.dry_run }}
31 changes: 3 additions & 28 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,31 +39,6 @@ A modern Node.js application that creates GitHub issues and HackMD documents for

**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.

## 🎯 Available Meeting Commands

| Meeting Group | Production Command | Development Command |
| ------------------------ | ------------------------------------------ | ---------------------------------------------- |
| UVWASI | `npm run uvwasi-meeting` | `npm run uvwasi-meeting:dev` |
| TSC | `npm run tsc-meeting` | `npm run tsc-meeting:dev` |
| Build | `npm run build-meeting` | `npm run build-meeting:dev` |
| Diagnostics | `npm run diag-meeting` | `npm run diag-meeting:dev` |
| Diagnostics Deep Dive | `npm run diag-deepdive-meeting` | `npm run diag-deepdive-meeting:dev` |
| TypeScript | `npm run typescript-meeting` | `npm run typescript-meeting:dev` |
| Release | `npm run release-meeting` | `npm run release-meeting:dev` |
| Cross Project Council | `npm run cross-project-council-meeting` | `npm run cross-project-council-meeting:dev` |
| Modules | `npm run modules-meeting` | `npm run modules-meeting:dev` |
| Tooling | `npm run tooling-meeting` | `npm run tooling-meeting:dev` |
| Security WG | `npm run security-wg-meeting` | `npm run security-wg-meeting:dev` |
| Next-10 | `npm run next-10-meeting` | `npm run next-10-meeting:dev` |
| Package Maintenance | `npm run package-maintenance-meeting` | `npm run package-maintenance-meeting:dev` |
| Package Metadata Interop | `npm run package-metadata-interop-meeting` | `npm run package-metadata-interop-meeting:dev` |
| Ecosystem Report | `npm run ecosystem-report-meeting` | `npm run ecosystem-report-meeting:dev` |
| Sustainability Collab | `npm run sustainability-collab-meeting` | `npm run sustainability-collab-meeting:dev` |
| Standards | `npm run standards-meeting` | `npm run standards-meeting:dev` |
| Security Collab | `npm run security-collab-meeting` | `npm run security-collab-meeting:dev` |
| Loaders | `npm run loaders-meeting` | `npm run loaders-meeting:dev` |
| Web Server Frameworks | `npm run web-server-frameworks-meeting` | `npm run web-server-frameworks-meeting:dev` |

## 📁 Project Structure

```
Expand Down Expand Up @@ -204,10 +179,10 @@ npm run check # Run both linting and formatting checks
### Local Development

```bash
# Using npm scripts (recommended)
npm run tsc-meeting:dev
# Using npx
npx --env-file=.env . tsc

# Direct execution
# Direct execution (with a `.env` file)
node --env-file=.env create-node-meeting-artifacts.mjs tsc
```

Expand Down
2 changes: 1 addition & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

46 changes: 2 additions & 44 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"type": "module",
"main": "create-node-meeting-artifacts.mjs",
"bin": {
"create-meeting": "./create-node-meeting-artifacts.mjs"
"create-node-meeting-artifacts": "./create-node-meeting-artifacts.mjs"
},
"engines": {
"node": ">=22.0.0"
Expand Down Expand Up @@ -36,49 +36,7 @@
"check": "npm run lint && npm run format:check",
"test": "node --test test/**/*.test.mjs",
"test:watch": "node --test --watch test/**/*.test.mjs",
"test:coverage": "node --test --experimental-test-coverage test/**/*.test.mjs",
"uvwasi-meeting": "create-meeting uvwasi",
"uvwasi-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs uvwasi",
"tsc-meeting": "create-meeting tsc",
"tsc-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs tsc",
"build-meeting": "create-meeting build",
"build-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs build",
"diag-meeting": "create-meeting diag",
"diag-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs diag",
"diag-deepdive-meeting": "create-meeting diag_deepdive",
"diag-deepdive-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs diag_deepdive",
"typescript-meeting": "create-meeting typescript",
"typescript-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs typescript",
"release-meeting": "create-meeting Release",
"release-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs Release",
"cross-project-council-meeting": "create-meeting cross_project_council",
"cross-project-council-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs cross_project_council",
"modules-meeting": "create-meeting modules",
"modules-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs modules",
"tooling-meeting": "create-meeting tooling",
"tooling-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs tooling",
"security-wg-meeting": "create-meeting security-wg",
"security-wg-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs security-wg",
"next-10-meeting": "create-meeting next-10",
"next-10-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs next-10",
"package-maintenance-meeting": "create-meeting package-maintenance",
"package-maintenance-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs package-maintenance",
"package-metadata-interop-meeting": "create-meeting package_metadata_interop",
"package-metadata-interop-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs package_metadata_interop",
"ecosystem-report-meeting": "create-meeting ecosystem_report",
"ecosystem-report-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs ecosystem_report",
"sustainability-collab-meeting": "create-meeting sustainability_collab",
"sustainability-collab-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs sustainability_collab",
"standards-meeting": "create-meeting standards",
"standards-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs standards",
"security-collab-meeting": "create-meeting security_collab",
"security-collab-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs security_collab",
"loaders-meeting": "create-meeting loaders",
"loaders-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs loaders",
"web": "create-meeting web",
"web:dev": "node --env-file=.env create-node-meeting-artifacts.mjs web",
"web-server-frameworks-meeting": "create-meeting web-server-frameworks",
"web-server-frameworks-meeting:dev": "node --env-file=.env create-node-meeting-artifacts.mjs web-server-frameworks"
"test:coverage": "node --test --experimental-test-coverage test/**/*.test.mjs"
},
"author": "",
"license": "MIT"
Expand Down
Loading