Skip to content

Commit c8fc68f

Browse files
committed
build: reorganize nightly and release builds
1 parent 842703a commit c8fc68f

9 files changed

Lines changed: 399 additions & 280 deletions

File tree

.github/workflows/build.yml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- uses: actions/checkout@v6
16-
with:
17-
lfs: true
1816
- uses: actions/setup-node@v6
1917
with:
2018
node-version: 'lts/*'
@@ -31,8 +29,6 @@ jobs:
3129
runs-on: ubuntu-latest
3230
steps:
3331
- uses: actions/checkout@v6
34-
with:
35-
lfs: true
3632
- uses: actions/setup-node@v6
3733
with:
3834
node-version: 'lts/*'
@@ -56,8 +52,6 @@ jobs:
5652
runs-on: ubuntu-latest
5753
steps:
5854
- uses: actions/checkout@v6
59-
with:
60-
lfs: true
6155
- uses: actions/setup-node@v6
6256
with:
6357
node-version: 'lts/*'
@@ -80,19 +74,8 @@ jobs:
8074
build_kotlin:
8175
name: Build and Test Kotlin
8276
runs-on: ubuntu-latest
83-
env:
84-
OSSRH_USERNAME: ${{secrets.OSSRH_USERNAME}}
85-
OSSRH_PASSWORD: ${{secrets.OSSRH_PASSWORD}}
86-
OSSRH_USERTOKEN_USERNAME: ${{secrets.OSSRH_USERTOKEN_USERNAME}}
87-
OSSRH_USERTOKEN_PASSWORD: ${{secrets.OSSRH_USERTOKEN_PASSWORD}}
88-
SONATYPE_STAGING_PROFILE_ID: ${{secrets.SONATYPE_STAGING_PROFILE_ID}}
89-
SONATYPE_SIGNING_KEY_ID: ${{secrets.SONATYPE_SIGNING_KEY_ID}}
90-
SONATYPE_SIGNING_PASSWORD: ${{secrets.SONATYPE_SIGNING_PASSWORD}}
91-
SONATYPE_SIGNING_KEY: ${{secrets.SONATYPE_SIGNING_KEY}}
9277
steps:
9378
- uses: actions/checkout@v6
94-
with:
95-
lfs: true
9679
- uses: actions/setup-node@v6
9780
with:
9881
node-version: 'lts/*'

.github/workflows/publish.yml

Lines changed: 18 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -6,139 +6,21 @@ on:
66
workflow_dispatch:
77

88
jobs:
9-
check_sha:
10-
name: check_sha
11-
runs-on: ubuntu-latest
12-
outputs:
13-
hit: ${{ steps.cache.outputs.cache-hit == 'true' }}
14-
steps:
15-
- run: touch dummy.txt
16-
17-
- uses: actions/cache@v5
18-
id: cache
19-
with:
20-
path: dummy.txt
21-
key: check-sha-${{ github.sha }}
22-
23-
nighty_web:
24-
name: Web
25-
needs: check_sha
26-
if: needs.check_sha.outputs.hit == 'false'
27-
runs-on: ubuntu-latest
28-
steps:
29-
- uses: actions/checkout@v6
30-
with:
31-
lfs: true
32-
- uses: actions/setup-node@v6
33-
with:
34-
node-version: 'lts/*'
35-
cache: 'npm'
36-
37-
- run: npm run update-version -- alpha ${{github.run_number}}
38-
- run: npm ci
39-
- run: npm run build-web
40-
- run: npm run build-language-server
41-
- run: npm run build-monaco
42-
- run: npm pack
43-
working-directory: ./packages/alphatab/
44-
- run: npm pack
45-
working-directory: ./packages/vite/
46-
- run: npm pack
47-
working-directory: ./packages/webpack/
48-
- run: npm pack
49-
working-directory: ./packages/lsp/
50-
- run: npm pack
51-
working-directory: ./packages/monaco/
52-
53-
- uses: actions/setup-node@v6
54-
with:
55-
node-version: 'lts/*'
56-
registry-url: https://registry.npmjs.org/
57-
58-
- run: npm publish --access public --tag alpha
59-
working-directory: ./packages/alphatab/
60-
env:
61-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
62-
63-
- run: npm publish --access public --tag alpha
64-
working-directory: ./packages/vite/
65-
env:
66-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
67-
68-
- run: npm publish --access public --tag alpha
69-
working-directory: ./packages/webpack/
70-
env:
71-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
72-
73-
- run: npm publish --access public --tag alpha
74-
working-directory: ./packages/lsp/
75-
env:
76-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
77-
78-
- run: npm publish --access public --tag alpha
79-
working-directory: ./packages/monaco/
80-
env:
81-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
82-
83-
nightly_csharp:
84-
name: C#
85-
needs: check_sha
86-
if: needs.check_sha.outputs.hit == 'false'
87-
runs-on: ubuntu-latest
88-
steps:
89-
- uses: actions/checkout@v6
90-
with:
91-
lfs: true
92-
- uses: actions/setup-node@v6
93-
with:
94-
node-version: 'lts/*'
95-
cache: 'npm'
96-
97-
- uses: actions/setup-dotnet@v5
98-
with:
99-
dotnet-version: "8"
100-
101-
- run: npm run update-version -- alpha ${{github.run_number}}
102-
- run: npm ci
103-
- run: npm run build-csharp
104-
105-
- run: dotnet nuget push AlphaTab/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json
106-
working-directory: ./packages/csharp/src/
107-
- run: dotnet nuget push AlphaTab.Windows/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json
108-
working-directory: ./packages/csharp/src/
109-
110-
nightly_kotlin_android:
111-
name: Kotlin (Android)
112-
needs: check_sha
113-
if: needs.check_sha.outputs.hit == 'false'
114-
runs-on: ubuntu-latest
115-
env:
116-
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{secrets.OSSRH_USERTOKEN_USERNAME}}
117-
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{secrets.OSSRH_USERTOKEN_PASSWORD}}
118-
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{secrets.SONATYPE_SIGNING_KEY_ID}}
119-
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{secrets.SONATYPE_SIGNING_PASSWORD}}
120-
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{secrets.SONATYPE_SIGNING_KEY}}
121-
steps:
122-
- uses: actions/checkout@v6
123-
with:
124-
lfs: true
125-
- uses: actions/setup-node@v6
126-
with:
127-
node-version: 'lts/*'
128-
cache: 'npm'
129-
130-
- uses: actions/setup-java@v5
131-
with:
132-
java-version: "19"
133-
distribution: "temurin"
134-
135-
- run: npm run update-version -- alpha ${{github.run_number}}
136-
- run: npm ci
137-
- run: npm run build-kotlin
138-
139-
- run: ./gradlew publishToMavenCentral
140-
working-directory: ./packages/kotlin/src/
141-
142-
- run: ./gradlew --stop
143-
working-directory: ./packages/kotlin/src/
144-
9+
web:
10+
uses: ./github/workflows/~publish_web.yml
11+
secrets: inherit
12+
with:
13+
version: alpha ${{github.run_number}}
14+
npm_tag: alpha
15+
16+
dotnet:
17+
uses: ./github/workflows/~publish_dotnet.yml
18+
secrets: inherit
19+
with:
20+
version: alpha ${{github.run_number}}
21+
22+
kotlin:
23+
uses: ./github/workflows/~publish_kotlin.yml
24+
secrets: inherit
25+
with:
26+
version: alpha ${{github.run_number}}

.github/workflows/release.yml

Lines changed: 20 additions & 109 deletions
Original file line numberDiff line numberDiff line change
@@ -19,116 +19,27 @@ on:
1919
default: true
2020

2121
jobs:
22-
release_web:
23-
name: Web
24-
runs-on: ubuntu-latest
22+
web:
23+
uses: ./github/workflows/~publish_web.yml
24+
secrets: inherit
2525
if: (github.event_name == 'push') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_web == 'true')
26-
steps:
27-
- uses: actions/checkout@v6
28-
with:
29-
lfs: true
30-
- uses: actions/setup-node@v6
31-
with:
32-
node-version: 'lts/*'
33-
34-
- run: npm run update-version -- ${{github.run_number}}
35-
- run: npm ci
36-
- run: npm run build-web
37-
- run: npm run build-language-server
38-
- run: npm run build-monaco
39-
- run: npm pack
40-
working-directory: ./packages/alphatab/
41-
- run: npm pack
42-
working-directory: ./packages/vite/
43-
- run: npm pack
44-
working-directory: ./packages/webpack/
45-
- run: npm pack
46-
working-directory: ./packages/lsp/
47-
- run: npm pack
48-
working-directory: ./packages/monaco/
49-
- uses: actions/setup-node@v6
50-
with:
51-
node-version: 'lts/*'
52-
registry-url: https://registry.npmjs.org/
53-
- name: Publish to NPM (alphaTab release)
54-
run: npm publish --access public
55-
working-directory: ./packages/alphatab/
56-
env:
57-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
58-
- name: Publish to NPM (Vite Plugin release)
59-
run: npm publish --access public
60-
working-directory: ./packages/vite/
61-
env:
62-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
63-
- name: Publish to NPM (Webpack release)
64-
run: npm publish --access public
65-
working-directory: ./packages/webpack/
66-
env:
67-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
68-
- name: Publish to NPM (Language Server release)
69-
run: npm publish --access public
70-
working-directory: ./packages/lsp/
71-
env:
72-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
73-
- name: Publish to NPM (Monaco release)
74-
run: npm publish --access public
75-
working-directory: ./packages/monaco/
76-
env:
77-
NODE_AUTH_TOKEN: ${{secrets.NPMJS_AUTH_TOKEN}}
78-
79-
release_csharp:
80-
name: C#
81-
runs-on: ubuntu-latest
26+
with:
27+
version: ${{github.run_number}}
28+
npm_tag: latest
29+
force: true
30+
31+
dotnet:
32+
uses: ./github/workflows/~publish_dotnet.yml
33+
secrets: inherit
8234
if: (github.event_name == 'push') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_csharp == 'true')
83-
steps:
84-
- uses: actions/checkout@v6
85-
with:
86-
lfs: true
87-
- uses: actions/setup-node@v6
88-
with:
89-
node-version: 'lts/*'
90-
- uses: actions/setup-dotnet@v5
91-
with:
92-
dotnet-version: '8'
93-
env:
94-
NUGET_AUTH_TOKEN: ${{secrets.NUGET_API_KEY}}
95-
- run: npm run update-version -- ${{github.run_number}}
96-
- run: npm ci
97-
- run: npm run build-csharp
98-
- run: dotnet nuget push AlphaTab/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate
99-
working-directory: ./packages/csharp/src/
100-
- run: dotnet nuget push AlphaTab.Windows/bin/Release/*.nupkg -k ${{secrets.NUGET_API_KEY}} -s https://api.nuget.org/v3/index.json --skip-duplicate
101-
working-directory: ./packages/csharp/src/
35+
with:
36+
version: ${{github.run_number}}
37+
force: true
10238

103-
release_kotlin_android:
104-
name: Kotlin (Android)
105-
runs-on: windows-latest
39+
kotlin:
40+
uses: ./github/workflows/~publish_kotlin.yml
41+
secrets: inherit
10642
if: (github.event_name == 'push') || (github.event_name == 'workflow_dispatch' && github.event.inputs.release_kotlin_android == 'true')
107-
env:
108-
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{secrets.OSSRH_USERTOKEN_USERNAME}}
109-
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{secrets.OSSRH_USERTOKEN_PASSWORD}}
110-
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{secrets.SONATYPE_SIGNING_KEY_ID}}
111-
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{secrets.SONATYPE_SIGNING_PASSWORD}}
112-
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{secrets.SONATYPE_SIGNING_KEY}}
113-
steps:
114-
- uses: actions/checkout@v6
115-
with:
116-
lfs: true
117-
- uses: actions/setup-node@v6
118-
with:
119-
node-version: 'lts/*'
120-
121-
- uses: actions/setup-java@v5
122-
with:
123-
java-version: "19"
124-
distribution: "temurin"
125-
126-
- run: npm run update-version -- ${{github.run_number}}
127-
- run: npm ci
128-
- run: npm run build-kotlin
129-
- run: ./gradlew publishToMavenCentral
130-
working-directory: ./packages/kotlin/src/
131-
132-
- run: ./gradlew --stop
133-
working-directory: ./packages/kotlin/src/
134-
43+
with:
44+
version: ${{github.run_number}}
45+
force: true
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
on:
2+
workflow_call:
3+
inputs:
4+
version:
5+
type: string
6+
required: true
7+
force:
8+
type: boolean
9+
default: false
10+
11+
jobs:
12+
check:
13+
runs-on: ubuntu-latest
14+
outputs:
15+
has_changes: ${{ steps.check.outputs.has_changes }}
16+
steps:
17+
- uses: actions/checkout@v6
18+
- uses: actions/setup-node@v6
19+
with:
20+
node-version: 'lts/*'
21+
cache: 'npm'
22+
- run: npm run nightly-check -- --platform dotnet --force ${{ inputs.force }}
23+
id: check
24+
25+
build:
26+
needs: check
27+
if: needs.check.outputs.has-changes == 'true'
28+
runs-on: ubuntu-latest
29+
steps:
30+
- uses: actions/checkout@v6
31+
- uses: actions/setup-node@v6
32+
with:
33+
node-version: 'lts/*'
34+
cache: 'npm'
35+
- uses: actions/setup-dotnet@v5
36+
with:
37+
dotnet-version: "8"
38+
39+
- run: npm run update-version -- ${{inputs.version}
40+
- run: npm ci
41+
- run: npm run build-csharp
42+
43+
- run: npm run nightly-pack -- --platform dotnet --force ${{ inputs.force }}
44+
- run: npm run nightly-publish -- --platform dotnet --force ${{ inputs.force }}
45+
env:
46+
NUGET_API_KEY: ${{ secrets.NUGET_API_KEY }}

0 commit comments

Comments
 (0)