ci: add NPM publish

This commit is contained in:
Morten Olsen
2024-01-12 14:42:52 +01:00
parent 59d6faaafc
commit ea95210b66
14 changed files with 93 additions and 34 deletions

View File

@@ -91,33 +91,33 @@ jobs:
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
# release-npm:
# if: github.ref == 'refs/heads/main'
# runs-on: ubuntu-latest
# needs: [build, update-release-draft]
# permissions:
# contents: read
# packages: write
# steps:
# - uses: actions/checkout@v3
# with:
# fetch-depth: 0
# - run: corepack enable
# - uses: actions/setup-node@v3
# with:
# cache: '${{ env.NODE_CACHE }}'
# node-version: '${{ env.NODE_VERSION }}'
# scope: '${{ env.NODE_SCOPE }}'
# - uses: actions/download-artifact@v3
# with:
# name: lib
# path: ./
# - run: |
# pnpm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
# pnpm install
# git config user.name "Github Actions Bot"
# git config user.email "<>"
# node scripts/set-version.ts $(git describe --tag --abbrev=0)
# pnpm publish -r --publish-branch main --access public --no-git-checks
# env:
# NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
release-npm:
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
needs: [build, update-release-draft]
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: corepack enable
- uses: actions/setup-node@v3
with:
cache: '${{ env.NODE_CACHE }}'
node-version: '${{ env.NODE_VERSION }}'
scope: '${{ env.NODE_SCOPE }}'
- uses: actions/download-artifact@v3
with:
name: lib
path: ./
- run: |
pnpm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN}
pnpm install
git config user.name "Github Actions Bot"
git config user.email "<>"
node scripts/set-version.mjs $(git describe --tag --abbrev=0)
pnpm publish -r --publish-branch main --access public --no-git-checks
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}

View File

@@ -1,6 +1,7 @@
{
"name": "@morten-olsen/mini-loader-repo",
"private": "true",
"license": "GPL-3.0",
"packageManager": "pnpm@8.10.4",
"version": "1.0.0",
"scripts": {
@@ -11,7 +12,6 @@
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@react-native-community/eslint-config": "^3.2.0",
"eslint": "^8.53.0",
@@ -23,5 +23,10 @@
"@pnpm/find-workspace-packages": "^6.0.9",
"@types/node": "^20.10.8",
"ts-node": "^10.9.2"
},
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

1
packages/cli/README.md Normal file
View File

@@ -0,0 +1 @@
[Go to documentation](https://github.com/morten-olsen/mini-loader)

View File

@@ -3,6 +3,7 @@
"version": "1.0.0",
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"license": "GPL-3.0",
"bin": {
"mini-loader": "./bin/index.mjs"
},
@@ -41,5 +42,10 @@
"@morten-olsen/mini-loader-server": "workspace:^",
"@types/inquirer": "^9.0.7",
"typescript": "^5.3.3"
},
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

View File

@@ -1,6 +1,7 @@
{
"name": "@morten-olsen/mini-loader-configs",
"version": "1.0.0",
"private": true,
"description": "",
"main": "index.js",
"scripts": {
@@ -8,5 +9,10 @@
},
"keywords": [],
"author": "",
"license": "ISC"
"license": "GPL-3.0",
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

View File

@@ -1,6 +1,8 @@
{
"name": "@morten-olsen/mini-loader-examples",
"version": "1.0.0",
"license": "GPL-3.0",
"private": true,
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"scripts": {
@@ -21,5 +23,10 @@
"@morten-olsen/mini-loader": "workspace:^",
"@types/node": "^20.10.8",
"typescript": "^5.3.3"
},
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

View File

@@ -0,0 +1 @@
[Go to documentation](https://github.com/morten-olsen/mini-loader)

View File

@@ -1,6 +1,7 @@
{
"name": "@morten-olsen/mini-loader",
"version": "1.0.0",
"license": "GPL-3.0",
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"scripts": {
@@ -19,5 +20,10 @@
"@morten-olsen/mini-loader-configs": "workspace:^",
"@types/node": "^20.10.8",
"typescript": "^5.3.3"
},
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

View File

@@ -0,0 +1 @@
[Go to documentation](https://github.com/morten-olsen/mini-loader)

View File

@@ -1,6 +1,7 @@
{
"name": "@morten-olsen/mini-loader-runner",
"version": "1.0.0",
"license": "GPL-3.0",
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"scripts": {
@@ -24,5 +25,10 @@
"dependencies": {
"eventemitter3": "^5.0.1",
"nanoid": "^5.0.4"
},
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

View File

@@ -0,0 +1 @@
[Go to documentation](https://github.com/morten-olsen/mini-loader)

View File

@@ -1,6 +1,7 @@
{
"name": "@morten-olsen/mini-loader-server",
"version": "1.0.0",
"license": "GPL-3.0",
"main": "./dist/esm/index.js",
"types": "./dist/esm/index.d.ts",
"bin": {
@@ -38,5 +39,10 @@
"sqlite3": "^5.1.7",
"superjson": "^2.2.1",
"zod": "^3.22.4"
},
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}

View File

@@ -1,7 +1,9 @@
import { findWorkspacePackages } from '@pnpm/find-workspace-packages';
import { writeFile } from 'fs/promises';
import { readFile, writeFile } from 'fs/promises';
import { join } from 'path';
const sharedData = JSON.parse(await readFile(join(process.cwd(), 'scripts/shared-data.json')));
const version = process.argv[2];
if (!version) {
throw new Error('Version is required');
@@ -11,6 +13,9 @@ const packages = await findWorkspacePackages(process.cwd());
for (const { manifest, dir } of packages) {
console.log(dir, version);
for (let [key, value] of Object.entries(sharedData || {})) {
manifest[key] = value;
}
manifest.version = version;
await writeFile(join(dir, 'package.json'), JSON.stringify(manifest, null, 2));
}

8
scripts/shared-data.json Normal file
View File

@@ -0,0 +1,8 @@
{
"license": "GPL-3.0",
"homepage": "https://github.com/morten-olsen/mini-loader",
"repository": {
"type": "git",
"url": "https://github.com/morten-olsen/mini-loader-repo"
}
}