Skip to content

Commit 47f4199

Browse files
authored
Merge pull request #269 from Vacxe/master
Prefinal 1.3.0
2 parents e80456d + 873bc3d commit 47f4199

File tree

5 files changed

+78
-53
lines changed

5 files changed

+78
-53
lines changed

.github/workflows/publish_package.yml

-28
This file was deleted.

.github/workflows/publish_release.yml

+40-10
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ name: Release distribution
22

33
on:
44
release:
5-
types: [created]
5+
types: [ created ]
66

77
jobs:
88
dangerKotlinLibrary-shadowJar:
9+
name: Build Library
910
runs-on: ubuntu-latest
1011
steps:
1112
- uses: actions/checkout@v3
@@ -24,11 +25,12 @@ jobs:
2425
path: danger-kotlin-library/build/libs/danger-kotlin.jar
2526

2627
dangerKotlin-build-and-distribute:
28+
name: Build and Attach binary to release
2729
needs: [ dangerKotlinLibrary-shadowJar ]
2830
strategy:
2931
fail-fast: false
3032
matrix:
31-
target: [ {os: ubuntu-latest, compiler: linuxX64}, {os: macos-latest, compiler: macosX64}, {os: macos-latest, compiler: macosArm64} ]
33+
target: [ { os: ubuntu-latest, compiler: linuxX64 }, { os: macos-latest, compiler: macosX64 }, { os: macos-latest, compiler: macosArm64 } ]
3234

3335
runs-on: ${{ matrix.target.os }}
3436

@@ -48,15 +50,14 @@ jobs:
4850
run: ./gradlew danger-kotlin:build -PtargetOS="${{ matrix.target.compiler }}"
4951
- name: Prepare distribution package
5052
run: |
51-
mkdir -p dist
52-
mkdir -p dist/lib/danger
53-
mkdir -p dist/bin
54-
mv "danger-kotlin.jar" "dist/lib/danger"
55-
mv "danger-kotlin/build/bin/runner/releaseExecutable/danger-kotlin.kexe" "dist/bin/danger-kotlin"
56-
chmod +x dist/bin/danger-kotlin
53+
mkdir -p lib/danger
54+
mkdir -p bin
55+
mv "danger-kotlin.jar" "lib/danger"
56+
mv "danger-kotlin/build/bin/runner/releaseExecutable/danger-kotlin.kexe" "bin/danger-kotlin"
57+
chmod +x bin/danger-kotlin
5758
- name: Tar files
58-
run: |
59-
tar -cvf danger-kotlin-${{ matrix.target.compiler }}.tar dist
59+
run: |
60+
tar -cvf danger-kotlin-${{ matrix.target.compiler }}.tar bin lib
6061
shasum -a 256 danger-kotlin-${{ matrix.target.compiler }}.tar
6162
- name: Get release information
6263
id: get_release
@@ -72,3 +73,32 @@ jobs:
7273
asset_path: ./danger-kotlin-${{ matrix.target.compiler }}.tar
7374
asset_name: danger-kotlin-${{ matrix.target.compiler }}.tar
7475
asset_content_type: application/x-tar
76+
77+
docker-build-push:
78+
name: Build and Push Docker image
79+
runs-on: ubuntu-latest
80+
needs: [ dangerKotlin-build-and-distribute ]
81+
steps:
82+
- uses: actions/checkout@v3
83+
84+
- name: Get release information
85+
id: get_release
86+
uses: bruceadams/[email protected]
87+
env:
88+
GITHUB_TOKEN: ${{ github.token }}
89+
90+
- name: Docker Login
91+
run: echo $PACKAGES_WRITE_TOKEN | docker login ghcr.io -u $USERNAME --password-stdin
92+
env:
93+
PACKAGES_WRITE_TOKEN: ${{ secrets.DOCKER_GITHUB_PASSWORD }}
94+
USERNAME: ${{ secrets.DOCKER_GITHUB_USERNAME }}
95+
96+
- name: Docker Build
97+
run: docker build -t ghcr.io/danger/danger-kotlin:$VERSION .
98+
env:
99+
VERSION: ${{ steps.get_release.outputs.tag_name }}
100+
101+
- name: Deploy
102+
run: docker push ghcr.io/danger/danger-kotlin:$VERSION
103+
env:
104+
VERSION: ${{ steps.get_release.outputs.tag_name }}

Dockerfile

+3-7
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,6 @@ ENV PATH $PATH:/usr/lib/kotlinc/bin
2424
RUN npm install -g danger
2525

2626
# Install Danger-Kotlin
27-
RUN wget -q "https://github.com/danger/kotlin/releases/download/$DANGER_KOTLIN_VERSION/danger-kotlin-$DANGER_KOTLIN_VERSION-linux.zip" && \
28-
unzip "danger-kotlin-$DANGER_KOTLIN_VERSION-linux.zip" -d /usr/local && \
29-
rm "danger-kotlin-$DANGER_KOTLIN_VERSION-linux.zip"
30-
31-
RUN mkdir "/usr/local/lib/danger/libs"
32-
33-
ENTRYPOINT ["danger-kotlin", "ci"]
27+
RUN wget -q "https://github.com/danger/kotlin/releases/download/$DANGER_KOTLIN_VERSION/danger-kotlin-linuxX64.tar" && \
28+
tar -xvf "danger-kotlin-linuxX64.tar" -C /usr/local && \
29+
rm "danger-kotlin-linuxX64.tar"

danger-kotlin-kts/src/main/kotlin/systems/danger/kts/DangerFileScriptDefinition.kt

+18-7
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,17 @@ object DangerFileScriptDefinition : ScriptCompilationConfiguration(
6363
)
6464

6565
class DangerFileKtsConfigurator : RefineScriptCompilationConfigurationHandler {
66-
67-
private val resolver = CompoundDependenciesResolver(
68-
FileSystemDependenciesResolver(DANGER_LIBS_FLAT_DIR),
69-
FileSystemDependenciesResolver(),
66+
private val externalDependenciesResolvers = setOf(
7067
MavenDependenciesResolver()
7168
)
69+
private val resolvers = DANGER_DEFAULT_FLAT_DIRS
70+
.map { File(it) }
71+
.filter { it.exists() }
72+
.map { FileSystemDependenciesResolver(it) } +
73+
FileSystemDependenciesResolver() +
74+
externalDependenciesResolvers
75+
76+
private val resolver = CompoundDependenciesResolver(resolvers)
7277

7378
override operator fun invoke(context: ScriptConfigurationRefinementContext): ResultWithDiagnostics<ScriptCompilationConfiguration> =
7479
processAnnotations(context)
@@ -136,7 +141,13 @@ class DangerFileKtsConfigurator : RefineScriptCompilationConfigurationHandler {
136141
}
137142

138143
private companion object {
139-
const val DANGER_DEFAULT_FLAT_DIR = "/usr/local/lib/danger/libs"
140-
private val DANGER_LIBS_FLAT_DIR = File(DANGER_DEFAULT_FLAT_DIR)
144+
val DANGER_DEFAULT_FLAT_DIRS = setOf(
145+
"/usr/local", // x86 location
146+
"/opt/local", // Arm
147+
"/opt/homebrew", // Homebrew Arm
148+
"/usr", // Fallback
149+
).map {
150+
"$it/lib/danger/libs"
151+
}
141152
}
142-
}
153+
}

danger-kotlin/src/runnerMain/kotlin/systems.danger/cmd/dangerfile/DangerFile.kt

+17-1
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,24 @@ import systems.danger.Log
88
object DangerFile : DangerFileBridge {
99
private const val DANGERFILE_EXTENSION = ".df.kts"
1010
private const val DANGERFILE = "Dangerfile$DANGERFILE_EXTENSION"
11+
private val platformExpectedLibLocations = setOf(
12+
"/usr/local", // x86 location
13+
"/opt/local", // Arm
14+
"/opt/homebrew", // Homebrew Arm
15+
"/usr", // Fallback
16+
)
1117

1218
override fun execute(inputJson: String, outputJson: String) {
19+
val dangerKotlinJarPath = platformExpectedLibLocations
20+
.map { "$it/lib/danger/danger-kotlin.jar" }
21+
.filter { access(it, F_OK) == 0 }
22+
.also {
23+
if (it.isEmpty()) {
24+
Log.error("lib/danger/danger-kotlin.jar not found in following location ${platformExpectedLibLocations.joinToString()}")
25+
exit(1)
26+
}
27+
}.first()
28+
1329
val dangerfile = dangerfileParameter(inputJson) ?: DANGERFILE
1430

1531
if (!dangerfile.endsWith(DANGERFILE_EXTENSION)) {
@@ -23,7 +39,7 @@ object DangerFile : DangerFileBridge {
2339
"-script-templates",
2440
"systems.danger.kts.DangerFileScript",
2541
"-cp",
26-
"/usr/local/lib/danger/danger-kotlin.jar",
42+
dangerKotlinJarPath,
2743
"-script",
2844
dangerfile,
2945
inputJson,

0 commit comments

Comments
 (0)