Skip to content

Commit b3024b9

Browse files
authored
Kotlin 2.1.0 improvements (#253)
* Update the package lock for PRs when needed * Update conventions * Enable KLIB cross compilation * Enable incremental wasm compilation * Configure NPM to update the package lock
1 parent a6e14d5 commit b3024b9

10 files changed

+3470
-603
lines changed

.github/workflows/pr-package-lock.yml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: Upgrade Package Lock
2+
3+
on:
4+
pull_request
5+
6+
jobs:
7+
upgrade_package_lock:
8+
runs-on: ubuntu-latest
9+
steps:
10+
- uses: actions/checkout@v4
11+
with:
12+
repository: ${{ github.event.pull_request.head.repo.full_name }}
13+
ref: ${{ github.event.pull_request.head.ref }}
14+
token: ${{ secrets.PUSH_PAT }}
15+
16+
- uses: actions/setup-java@v4
17+
with:
18+
distribution: 'zulu'
19+
java-version-file: .ci-java-version
20+
21+
- name: Setup Gradle
22+
uses: gradle/actions/setup-gradle@v4
23+
with:
24+
gradle-version: wrapper
25+
26+
- name: Run assemble task
27+
run: ./gradlew kotlinUpgradePackageLock --rerun-tasks
28+
29+
- name: Commit package lock changes
30+
id: commit_package_lock_changes
31+
uses: EndBug/add-and-commit@v9
32+
with:
33+
add: "['kotlin-js-store/package-lock.json']"
34+
default_author: github_actions
35+
message: "Upgrade package lock"
36+
37+
env:
38+
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dkotlin.incremental=false -Dorg.gradle.jvmargs="-Xmx16g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:MaxMetaspaceSize=1024m"

.github/workflows/pr.yml

+10-20
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1616

1717
assemble:
18-
runs-on: macos-latest
18+
runs-on: ubuntu-latest
1919
steps:
2020
- uses: actions/checkout@v4
2121

@@ -50,24 +50,6 @@ jobs:
5050
- name: Run detekt
5151
run: ./gradlew detektAll
5252

53-
detekt-apple:
54-
runs-on: macos-latest
55-
steps:
56-
- uses: actions/checkout@v4
57-
58-
- uses: actions/setup-java@v4
59-
with:
60-
distribution: 'zulu'
61-
java-version-file: .ci-java-version
62-
63-
- name: Setup Gradle
64-
uses: gradle/actions/setup-gradle@v4
65-
with:
66-
gradle-version: wrapper
67-
68-
- name: Run detekt for apple targets
69-
run: ./gradlew detektAppleMain detektAppleTest
70-
7153
ktlint:
7254
runs-on: ubuntu-latest
7355
steps:
@@ -95,7 +77,10 @@ jobs:
9577
run: ./gradlew lintRelease
9678

9779
test:
98-
runs-on: macos-latest
80+
strategy:
81+
matrix:
82+
os: [ macos-latest, ubuntu-latest ]
83+
runs-on: ${{matrix.os}}
9984
steps:
10085
- uses: actions/checkout@v4
10186

@@ -111,6 +96,11 @@ jobs:
11196

11297
- name: Run tests
11398
run: ./gradlew allTests
99+
if: matrix.os == 'ubuntu-latest'
100+
101+
- name: Run Apple tests
102+
run: ./gradlew iosX64Test
103+
if: matrix.os == 'macos-latest'
114104

115105
env:
116106
GRADLE_OPTS: -Dorg.gradle.daemon=false -Dkotlin.incremental=false -Dorg.gradle.jvmargs="-Xmx12g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:MaxMetaspaceSize=1024m"

.github/workflows/publish_release.yml

+5-19
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ env:
1111

1212
jobs:
1313
publish_artifacts:
14-
runs-on: macos-latest
14+
runs-on: ubuntu-latest
1515

1616
steps:
1717
- uses: actions/checkout@v4
@@ -42,23 +42,6 @@ jobs:
4242
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ARTIFACT_SIGNING_PRIVATE_KEY }}
4343
run: ./gradlew publishAllPublicationsToMavenCentralRepository -Pversion=${{ env.RELEASE_VERSION }}
4444

45-
publish_release:
46-
needs: publish_artifacts
47-
48-
runs-on: ubuntu-latest
49-
50-
steps:
51-
- uses: actions/checkout@v4
52-
with:
53-
token: ${{ secrets.PUSH_PAT }}
54-
55-
- name: Generate versions
56-
uses: HardNorth/github-version-generate@v1
57-
with:
58-
version-source: file
59-
version-file: ${{ env.VERSION_FILE }}
60-
version-file-extraction-pattern: ${{ env.VERSION_EXTRACT_PATTERN }}
61-
6245
- name: Create, checkout, and push release branch
6346
run: |
6447
git config user.name eygraber
@@ -122,10 +105,13 @@ jobs:
122105
sed -i -E -e 's/(compose-placeholder.*:)[0-9]+\.[0-9]+\.[0-9]+"/\1${{ env.RELEASE_VERSION }}"/g' README.md && \
123106
sed -i -E -e 's/(compose-placeholder.*:)[0-9]+\.[0-9]+\.[0-9]+-SNAPSHOT/\1${{ env.NEXT_VERSION }}-SNAPSHOT/g' README.md
124107
108+
- name: Update package-lock.json if needed
109+
run: ./gradlew kotlinUpgradePackageLock --no-build-cache --no-configuration-cache --rerun-tasks
110+
125111
- name: Commit next dev version
126112
id: commit_next_dev
127113
uses: EndBug/add-and-commit@v9
128114
with:
129-
add: "['gradle.properties', 'README.md']"
115+
add: "['gradle.properties', 'README.md', 'kotlin-js-store/package-lock.json']"
130116
default_author: github_actions
131117
message: "Prepare next dev version"

.github/workflows/publish_snapshot.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77

88
jobs:
99
publish_snapshot:
10-
runs-on: macos-latest
10+
runs-on: ubuntu-latest
1111
steps:
1212
- uses: actions/checkout@v4
1313

build.gradle.kts

+2-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ gradleConventionsDefaults {
4747

4848
gradleConventionsKmpDefaults {
4949
webOptions = webOptions.copy(
50-
isNodeEnabled = false
50+
isNodeEnabled = false,
51+
isBrowserEnabled = true,
5152
)
5253

5354
targets(

gradle.properties

+2-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,8 @@ org.jetbrains.compose.experimental.jscanvas.enabled=true
3737
org.jetbrains.compose.experimental.wasm.enabled=true
3838

3939
#Kotlin
40+
kotlin.incremental.wasm=true
4041
kotlin.js.yarn=false
41-
kotlin.mpp.androidGradlePluginCompatibility.nowarn=true
42+
kotlin.native.enableKlibsCrossCompilation=true
4243
kotlin.mpp.stability.nowarn=true
4344
kotlin.native.ignoreDisabledTargets=true

gradle/libs.versions.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ android-sdk-min = "21"
77

88
composeJetbrains = "1.7.1"
99

10-
conventions = "0.0.79"
10+
conventions = "0.0.81"
1111

1212
detekt = "1.23.7"
1313
detektCompose = "0.4.19"

0 commit comments

Comments
 (0)