Skip to content

Commit 1b82234

Browse files
authored
Update Distribution Builds (#25)
* Add resolve implementation for ContainsLineAt * Add JsonPathEquals FileResolver implementation * Increase coverage for JsonPathEquals * Update picocli script to include license, update JsonPathEqualsSpec * Update distribution build repositories and build policies, use builder images from bintray * Remove static option on mac native image build * Fix docker builds workflow
1 parent fc99251 commit 1b82234

File tree

39 files changed

+1364
-272
lines changed

39 files changed

+1364
-272
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Build and Push Docker Builders
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
ref:
6+
description: 'Github Ref'
7+
required: false
8+
default: 'main'
9+
jobs:
10+
build:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v2
14+
with:
15+
ref: ${{ github.event.inputs.ref }}
16+
- name: Build and Push Docker Images to Bintray
17+
shell: bash
18+
run: ./distributions/scripts/build-and-push-docker-builders-to-bintray.sh
19+
env:
20+
BINTRAY_USERNAME: ${{ secrets.BINTRAY_USERNAME }}
21+
BINTRAY_API_KEY: ${{ secrets.BINTRAY_API_KEY }}

.github/workflows/maven-ci.yml

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ jobs:
120120
- name: Setup GraalVM
121121
uses: DeLaGuardo/setup-graalvm@master
122122
with:
123-
graalvm-version: 20.1.0.java8
123+
graalvm-version: 20.3.0.java8
124124
- name: Setup GraalVM Native Image Tool
125125
run: gu install native-image
126126
- name: Build Mac Native Image
@@ -131,12 +131,6 @@ jobs:
131131
if: success()
132132
working-directory: build
133133
run: ./sourcehawk help
134-
- name: Archive Mac Native Image
135-
if: success()
136-
uses: actions/upload-artifact@v2
137-
with:
138-
name: mac-native-image
139-
path: build/sourcehawk
140134
build-windows-native-image:
141135
runs-on: windows-latest
142136
needs: build
@@ -150,25 +144,19 @@ jobs:
150144
run: ren *.jar native-image.jar
151145
- name: Setup GraalVM Native Image and Visual C Build Tools
152146
run: |
153-
Invoke-RestMethod -Uri https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-windows-amd64-20.2.0.zip -OutFile 'graal.zip'
147+
Invoke-RestMethod -Uri https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-windows-amd64-20.3.0.zip -OutFile 'graal.zip'
154148
Expand-Archive -path 'graal.zip' -destinationpath '.'
155-
graalvm-ce-java11-20.2.0\bin\gu.cmd install native-image
149+
graalvm-ce-java11-20.3.0\bin\gu.cmd install native-image
156150
choco install visualstudio2017-workload-vctools
157151
- name: Build Windows Native Image
158152
if: success()
159153
shell: cmd
160154
run: |
161155
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
162-
graalvm-ce-java11-20.2.0\bin\native-image -cp .\build\native-image.jar -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime
156+
graalvm-ce-java11-20.3.0\bin\native-image -cp .\build\native-image.jar -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime
163157
env:
164-
JAVA_HOME: ./graalvm-ce-java11-20.2.0
158+
JAVA_HOME: ./graalvm-ce-java11-20.3.0
165159
- name: Smoke Test
166160
if: success()
167161
shell: cmd
168-
run: sourcehawk.exe help
169-
- name: Archive Windows Native Image
170-
if: success()
171-
uses: actions/upload-artifact@v2
172-
with:
173-
name: windows-native-image
174-
path: sourcehawk.exe
162+
run: sourcehawk.exe help

.github/workflows/release.yml

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ jobs:
2020
env:
2121
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2222
outputs:
23+
RELEASE_VERSION: ${{ steps.set_maven_project_version.outputs.RELEASE_VERSION }}
2324
RELEASE_ASSET_UPLOAD_URL: ${{ steps.create_release.outputs.upload_url }}
2425
steps:
2526
- uses: actions/checkout@v2
@@ -106,51 +107,51 @@ jobs:
106107
with:
107108
upload_url: ${{ steps.create_release.outputs.upload_url }}
108109
asset_path: ./distributions/linux/target/sourcehawk
109-
asset_name: sourcehawk-linux-x86_64
110+
asset_name: sourcehawk-${{ steps.set_maven_project_version.outputs.RELEASE_VERSION }}-linux-x86_64
110111
asset_content_type: application/octet-stream
111-
- name: Upload Sourcehawk Debian Package
112+
- name: Upload Sourcehawk Debian Buster Package
112113
if: success()
113114
continue-on-error: true
114115
uses: actions/upload-release-asset@v1
115116
env:
116117
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
117118
with:
118119
upload_url: ${{ steps.create_release.outputs.upload_url }}
119-
asset_path: ./distributions/debian/target/sourcehawk-debian.deb
120-
asset_name: sourcehawk-debian-amd64.deb
120+
asset_path: ./distributions/debian/target/sourcehawk-debian-buster.deb
121+
asset_name: sourcehawk-${{ steps.set_maven_project_version.outputs.RELEASE_VERSION }}-debian-buster_amd64.deb
121122
asset_content_type: application/octet-stream
122-
- name: Upload Sourcehawk Ubuntu Package
123+
- name: Upload Sourcehawk Ubuntu Focal Package
123124
if: success()
124125
continue-on-error: true
125126
uses: actions/upload-release-asset@v1
126127
env:
127128
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
128129
with:
129130
upload_url: ${{ steps.create_release.outputs.upload_url }}
130-
asset_path: ./distributions/debian/target/sourcehawk-ubuntu.deb
131-
asset_name: sourcehawk-ubuntu-amd64.deb
131+
asset_path: ./distributions/debian/target/sourcehawk-ubuntu-focal.deb
132+
asset_name: sourcehawk-${{ steps.set_maven_project_version.outputs.RELEASE_VERSION }}-ubuntu-focal_amd64.deb
132133
asset_content_type: application/octet-stream
133-
- name: Upload Sourcehawk Centos RPM Package
134+
- name: Upload Sourcehawk Centos 8 RPM Package
134135
if: success()
135136
continue-on-error: true
136137
uses: actions/upload-release-asset@v1
137138
env:
138139
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
139140
with:
140141
upload_url: ${{ steps.create_release.outputs.upload_url }}
141-
asset_path: ./distributions/linux/target/sourcehawk-centos7.rpm
142-
asset_name: sourcehawk-centos-x86_64.rpm
142+
asset_path: ./distributions/linux/target/sourcehawk-centos-8.rpm
143+
asset_name: sourcehawk-${{ steps.set_maven_project_version.outputs.RELEASE_VERSION }}-1.el8.x86_64.rpm
143144
asset_content_type: application/octet-stream
144-
- name: Upload Sourcehawk Fedora RPM Package
145+
- name: Upload Sourcehawk Fedora 34 RPM Package
145146
if: success()
146147
continue-on-error: true
147148
uses: actions/upload-release-asset@v1
148149
env:
149150
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
150151
with:
151152
upload_url: ${{ steps.create_release.outputs.upload_url }}
152-
asset_path: ./distributions/linux/target/sourcehawk-fedora34.rpm
153-
asset_name: sourcehawk-fedora-x86_64.rpm
153+
asset_path: ./distributions/linux/target/sourcehawk-fedora-34.rpm
154+
asset_name: sourcehawk-${{ steps.set_maven_project_version.outputs.RELEASE_VERSION }}-1.fc34.x86_64.rpm
154155
asset_content_type: application/octet-stream
155156
- name: Publish Github Pages
156157
if: success()
@@ -207,13 +208,13 @@ jobs:
207208
- name: Setup GraalVM
208209
uses: DeLaGuardo/setup-graalvm@master
209210
with:
210-
graalvm-version: 20.1.0.java8
211+
graalvm-version: 20.3.0.java8
211212
- name: Setup GraalVM Native Image Tool
212213
run: gu install native-image
213214
- name: Build Mac Native Image
214215
if: success()
215216
working-directory: build
216-
run: native-image -cp native-image.jar -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime --no-fallback
217+
run: native-image -cp native-image.jar -H:+ReportExceptionStackTraces -H:+StaticExecutableWithDynamicLibC --report-unsupported-elements-at-runtime --no-fallback
217218
- name: Smoke Test
218219
if: success()
219220
working-directory: build
@@ -227,7 +228,7 @@ jobs:
227228
with:
228229
upload_url: ${{ needs.build.outputs.RELEASE_ASSET_UPLOAD_URL }}
229230
asset_path: build/sourcehawk
230-
asset_name: sourcehawk-darwin-x86_64
231+
asset_name: sourcehawk-${{ needs.build.outputs.RELEASE_VERSION }}-darwin-x86_64
231232
asset_content_type: application/octet-stream
232233
build-windows-native-image:
233234
runs-on: windows-latest
@@ -242,18 +243,18 @@ jobs:
242243
run: ren *.jar native-image.jar
243244
- name: Setup GraalVM Native Image and Visual C Build Tools
244245
run: |
245-
Invoke-RestMethod -Uri https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.2.0/graalvm-ce-java11-windows-amd64-20.2.0.zip -OutFile 'graal.zip'
246+
Invoke-RestMethod -Uri https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-20.3.0/graalvm-ce-java11-windows-amd64-20.3.0.zip -OutFile 'graal.zip'
246247
Expand-Archive -path 'graal.zip' -destinationpath '.'
247-
graalvm-ce-java11-20.2.0\bin\gu.cmd install native-image
248+
graalvm-ce-java11-20.3.0\bin\gu.cmd install native-image
248249
choco install visualstudio2017-workload-vctools
249250
- name: Build Windows Native Image
250251
if: success()
251252
shell: cmd
252253
run: |
253254
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat"
254-
graalvm-ce-java11-20.2.0\bin\native-image -cp .\build\native-image.jar -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime
255+
graalvm-ce-java11-20.3.0\bin\native-image -cp .\build\native-image.jar -H:+ReportExceptionStackTraces --report-unsupported-elements-at-runtime
255256
env:
256-
JAVA_HOME: ./graalvm-ce-java11-20.2.0
257+
JAVA_HOME: ./graalvm-ce-java11-20.3.0
257258
- name: Smoke Test
258259
if: success()
259260
shell: cmd
@@ -267,5 +268,5 @@ jobs:
267268
with:
268269
upload_url: ${{ needs.build.outputs.RELEASE_ASSET_UPLOAD_URL }}
269270
asset_path: sourcehawk.exe
270-
asset_name: sourcehawk-windows-x86_64.exe
271+
asset_name: sourcehawk-${{ needs.build.outputs.RELEASE_VERSION }}-windows-x86_64.exe
271272
asset_content_type: application/octet-stream
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.optum.sourcehawk.core.data;
2+
3+
import lombok.AllArgsConstructor;
4+
import lombok.NonNull;
5+
import lombok.Value;
6+
7+
/**
8+
* Holds a pair of values
9+
*
10+
* @author Brian Wyka
11+
*/
12+
@Value
13+
@AllArgsConstructor(staticName = "of")
14+
public class Pair<T, S> {
15+
16+
@NonNull
17+
T left;
18+
19+
@NonNull
20+
S right;
21+
22+
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.optum.sourcehawk.core.data
2+
3+
import spock.lang.Specification
4+
5+
class PairSpec extends Specification {
6+
7+
def "of - same types"() {
8+
given:
9+
String left = "left"
10+
String right = "right"
11+
12+
when:
13+
Pair<String, String> pair = Pair.of(left, right)
14+
15+
then:
16+
pair
17+
pair.getLeft() == left
18+
pair.getRight() == right
19+
}
20+
21+
def "of - different types"() {
22+
given:
23+
String left = "number"
24+
int right = 20
25+
26+
when:
27+
Pair<String, Integer> pair = Pair.of(left, right)
28+
29+
then:
30+
pair
31+
pair.getLeft() == left
32+
pair.getRight() == right
33+
}
34+
35+
def "of - null key/value"() {
36+
when:
37+
Pair.of(null, "world")
38+
39+
then:
40+
thrown(NullPointerException)
41+
42+
when:
43+
Pair.of("hello", null)
44+
45+
then:
46+
thrown(NullPointerException)
47+
}
48+
49+
}

distributions/debian/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ ARG DEB_FILE
1010
COPY ${DEBIAN_DIRECTORY} /debian/
1111

1212
# Create the debian package
13-
RUN chmod +x /debian/usr/local/bin/sourcehawk && dpkg-deb --build /debian ${DEB_FILE}
13+
RUN chmod +x /debian/usr/bin/sourcehawk && dpkg-deb --build /debian ${DEB_FILE}

0 commit comments

Comments
 (0)