-
Notifications
You must be signed in to change notification settings - Fork 379
92 lines (79 loc) · 3.88 KB
/
publish.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
name: "Publish"
on:
workflow_dispatch:
inputs:
next_version:
type: "string"
description: "version (e.g. 3.4.0-alpha.0)"
required: true
skip_publish:
type: "boolean"
description: "mark in case only the version update shall be executed, skipping the release to npm"
required: true
skip_push:
type: "boolean"
description: "mark in case the version update shall not be pushed back to the repository"
required: true
stable_release:
type: "boolean"
description: "mark in case this is a full stable release (flag is ignored in case publish is skipped)"
required: true
jobs:
publish:
permissions:
contents: "write"
id-token: "write"
runs-on: "ubuntu-latest"
steps:
- uses: "actions/checkout@v4"
with:
token: "${{ secrets.JSONFORMS_PUBLISH_PAT }}"
- name: "Configure Git Credentials"
run: |
git config user.name "jsonforms-publish[bot]"
git config user.email "jsonforms-publish@eclipsesource.com"
- name: "Setup node"
uses: "actions/setup-node@v3"
with:
node-version: "18"
registry-url: "https://registry.npmjs.org"
- uses: pnpm/action-setup@v4.0.0
name: Install pnpm
id: pnpm-install
with:
version: 8
run_install: false
- name: "Install Packages"
run: "pnpm i --frozen-lockfile"
- name: "Build"
run: "pnpm run build"
- name: "Test"
run: "pnpm run test"
- name: "Versioning"
run: "pnpm exec lerna version ${{ github.event.inputs.next_version }} --no-push --force-publish --yes"
- name: "Adjust PeerDependencies"
run: |
cd packages/angular && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}"
cd ../angular-material && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}" && pnpm pkg set peerDependencies.@jsonforms/angular="${{ github.event.inputs.next_version }}"
cd ../examples && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}"
cd ../material-renderers && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}" && pnpm pkg set peerDependencies.@jsonforms/react="${{ github.event.inputs.next_version }}"
cd ../react && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}"
cd ../vanilla-renderers && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}" && pnpm pkg set peerDependencies.@jsonforms/react="${{ github.event.inputs.next_version }}"
cd ../vue && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}"
cd ../vue-vanilla && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}" && pnpm pkg set peerDependencies.@jsonforms/vue="${{ github.event.inputs.next_version }}"
cd ../vue-vuetify && pnpm pkg set peerDependencies.@jsonforms/core="${{ github.event.inputs.next_version }}" && pnpm pkg set peerDependencies.@jsonforms/vue="${{ github.event.inputs.next_version }}"
- name: "Tag and Commit"
run: |
git add -A && git commit --amend --no-edit
git tag v${{ github.event.inputs.next_version }} -f
- name: "push"
if: "github.event.inputs.skip_push == 'false'"
run: |
git push
git push origin v${{ github.event.inputs.next_version }}
- name: "Publish to npm"
if: "github.event.inputs.skip_publish == 'false'"
run: "pnpm publish --recursive ${{ github.event.inputs.stable_release == 'true' && ' ' || '--tag next' }}"
env:
NODE_AUTH_TOKEN: "${{ secrets.NPM_TOKEN }}"
NPM_CONFIG_PROVENANCE: "true"