|
31 | 31 | - '.github/workflows/*.yml' |
32 | 32 |
|
33 | 33 | jobs: |
34 | | - lint: |
35 | | - name: Check code formatting |
36 | | - runs-on: ubuntu-latest |
37 | | - steps: |
38 | | - - uses: actions/checkout@v6 |
39 | | - - uses: actions/setup-java@v5 |
40 | | - with: |
41 | | - distribution: 'temurin' |
42 | | - java-version: 11 |
43 | | - java-package: jdk |
44 | | - cache: 'maven' |
45 | | - - name: spotless:check |
46 | | - run: mvn --batch-mode --no-transfer-progress spotless:check |
47 | | - |
48 | | - test: |
49 | | - name: test ${{ matrix.os }} jdk${{ matrix.java }} |
50 | | - strategy: |
51 | | - fail-fast: false |
52 | | - matrix: |
53 | | - os: [ ubuntu-latest ] |
54 | | - java: [ 11, 21, 25 ] |
55 | | - include: |
56 | | - - os: windows-latest |
57 | | - java: 25 |
58 | | - - os: macos-latest |
59 | | - java: 25 |
60 | | - runs-on: ${{ matrix.os }} |
61 | | - steps: |
62 | | - - uses: actions/checkout@v6 |
63 | | - - uses: actions/setup-java@v5 |
64 | | - with: |
65 | | - distribution: 'temurin' |
66 | | - java-version: ${{ matrix.java }} |
67 | | - java-package: jdk |
68 | | - cache: 'maven' |
69 | | - - name: Test |
70 | | - run: mvn --batch-mode --no-transfer-progress test |
71 | | - |
72 | | - test_graalvm: |
73 | | - name: test ${{ matrix.os }} jdk${{ matrix.java }} GraalVM native-image - ${{ matrix.profiles }} |
74 | | - strategy: |
75 | | - fail-fast: false |
76 | | - matrix: |
77 | | - os: [ ubuntu-latest, windows-latest, macos-latest ] |
78 | | - java: [ '17', '21', '25' ] |
79 | | - profiles: ['native', 'native,native-exported'] |
80 | | - runs-on: ${{ matrix.os }} |
81 | | - steps: |
82 | | - - uses: actions/checkout@v6 |
83 | | - - uses: graalvm/setup-graalvm@v1 |
84 | | - with: |
85 | | - java-version: ${{ matrix.java }} |
86 | | - distribution: 'graalvm-community' |
87 | | - github-token: ${{ secrets.GITHUB_TOKEN }} |
88 | | - - name: Test |
89 | | - run: mvn --batch-mode --no-transfer-progress -P ${{ matrix.profiles }} integration-test |
| 34 | +# lint: |
| 35 | +# name: Check code formatting |
| 36 | +# runs-on: ubuntu-latest |
| 37 | +# steps: |
| 38 | +# - uses: actions/checkout@v6 |
| 39 | +# - uses: actions/setup-java@v5 |
| 40 | +# with: |
| 41 | +# distribution: 'temurin' |
| 42 | +# java-version: 11 |
| 43 | +# java-package: jdk |
| 44 | +# cache: 'maven' |
| 45 | +# - name: spotless:check |
| 46 | +# run: mvn --batch-mode --no-transfer-progress spotless:check |
| 47 | +# |
| 48 | +# test: |
| 49 | +# name: test ${{ matrix.os }} jdk${{ matrix.java }} |
| 50 | +# strategy: |
| 51 | +# fail-fast: false |
| 52 | +# matrix: |
| 53 | +# os: [ ubuntu-latest ] |
| 54 | +# java: [ 11, 21, 25 ] |
| 55 | +# include: |
| 56 | +# - os: windows-latest |
| 57 | +# java: 25 |
| 58 | +# - os: macos-latest |
| 59 | +# java: 25 |
| 60 | +# runs-on: ${{ matrix.os }} |
| 61 | +# steps: |
| 62 | +# - uses: actions/checkout@v6 |
| 63 | +# - uses: actions/setup-java@v5 |
| 64 | +# with: |
| 65 | +# distribution: 'temurin' |
| 66 | +# java-version: ${{ matrix.java }} |
| 67 | +# java-package: jdk |
| 68 | +# cache: 'maven' |
| 69 | +# - name: Test |
| 70 | +# run: mvn --batch-mode --no-transfer-progress test |
| 71 | +# |
| 72 | +# test_graalvm: |
| 73 | +# name: test ${{ matrix.os }} jdk${{ matrix.java }} GraalVM native-image - ${{ matrix.profiles }} |
| 74 | +# strategy: |
| 75 | +# fail-fast: false |
| 76 | +# matrix: |
| 77 | +# os: [ ubuntu-latest, windows-latest, macos-latest ] |
| 78 | +# java: [ '17', '21', '25' ] |
| 79 | +# profiles: ['native', 'native,native-exported'] |
| 80 | +# runs-on: ${{ matrix.os }} |
| 81 | +# steps: |
| 82 | +# - uses: actions/checkout@v6 |
| 83 | +# - uses: graalvm/setup-graalvm@v1 |
| 84 | +# with: |
| 85 | +# java-version: ${{ matrix.java }} |
| 86 | +# distribution: 'graalvm-community' |
| 87 | +# github-token: ${{ secrets.GITHUB_TOKEN }} |
| 88 | +# - name: Test |
| 89 | +# run: mvn --batch-mode --no-transfer-progress -P ${{ matrix.profiles }} integration-test |
90 | 90 |
|
91 | 91 | test_multiarch: |
92 | 92 | name: test ${{ matrix.arch }} ${{ matrix.distro }} jdk${{ matrix.java }} |
@@ -116,9 +116,12 @@ jobs: |
116 | 116 | runs-on: ubuntu-latest |
117 | 117 | steps: |
118 | 118 | - uses: actions/checkout@v6 |
119 | | - - name: Set MAVEN_OPTS |
120 | | - if: matrix.arch == 'ppc64le' || matrix.arch == 'armv7' |
| 119 | + - name: Set MAVEN_OPTS ppc64le |
| 120 | + if: matrix.arch == 'ppc64le' |
121 | 121 | run: echo "MAVEN_OPTS=-Djdk.tls.client.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" >> $GITHUB_ENV |
| 122 | + - name: Set MAVEN_OPTS armv7 |
| 123 | + if: matrix.arch == 'armv7' |
| 124 | + run: echo "MAVEN_OPTS=-XX:-UseCompactObjectHeaders -XX:+UseSerialGC -XX:+TieredCompilation -XX:TieredStopAtLevel=3 -Xbatch -Djdk.tls.client.cipherSuites=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" >> $GITHUB_ENV |
122 | 125 | - uses: uraimo/run-on-arch-action@v3 |
123 | 126 | name: Test |
124 | 127 | with: |
@@ -166,100 +169,100 @@ jobs: |
166 | 169 | # Java tests with that native library, as some functions will not be available (extensions). |
167 | 170 | # Here we use the sqlite3 package installed by homebrew on Mac, which comes |
168 | 171 | # with the header file and library. |
169 | | - test_external_amalgamation: |
170 | | - name: test external amalgamation |
171 | | - runs-on: macos-latest |
172 | | - steps: |
173 | | - - uses: actions/checkout@v6 |
174 | | - - uses: actions/setup-java@v5 |
175 | | - with: |
176 | | - distribution: 'temurin' |
177 | | - java-version: 25 |
178 | | - java-package: jdk |
179 | | - cache: 'maven' |
180 | | - - run: brew install sqlite3 |
181 | | - - name: Find SQLite directory |
182 | | - run: | |
183 | | - BREW_SQLITE_PREFIX=`brew --prefix sqlite3` |
184 | | - echo "SQLITE_DIR=$(dirname ${BREW_SQLITE_PREFIX})/$(readlink ${BREW_SQLITE_PREFIX})" | tee -a $GITHUB_ENV |
185 | | - - name: Make native lib |
186 | | - run: | |
187 | | - make native SQLITE_OBJ=${{ env.SQLITE_DIR }}/lib/libsqlite3.dylib SQLITE_HEADER=${{ env.SQLITE_DIR }}/include/sqlite3.h |
188 | | - - name: Test |
189 | | - run: mvn --batch-mode --no-transfer-progress test |
190 | | - |
191 | | - release: |
192 | | - name: Deploy |
193 | | - needs: [ lint, test, test_multiarch, test_external_amalgamation, test_graalvm ] |
194 | | - if: github.repository_owner == 'xerial' && github.ref == 'refs/heads/master' # only perform on latest master |
195 | | - runs-on: ubuntu-latest |
196 | | - steps: |
197 | | - - name: Print inputs |
198 | | - run: | |
199 | | - echo "Perform release: ${{ inputs.perform_release }}" |
200 | | - - uses: actions/checkout@v6 |
201 | | - if: github.event_name == 'push' || inputs.perform_release != true |
202 | | - # when performing a release we need the full git history to generate the changelog |
203 | | - - uses: actions/checkout@v6 |
204 | | - if: inputs.perform_release |
205 | | - with: |
206 | | - fetch-depth: 0 |
207 | | - - name: Set up Apache Maven Central |
208 | | - uses: actions/setup-java@v5 |
209 | | - with: # running setup-java again overwrites the settings.xml |
210 | | - distribution: 'temurin' |
211 | | - java-version: '11' |
212 | | - java-package: jdk |
213 | | - server-id: central # Value of the distributionManagement/repository/id field of the pom.xml |
214 | | - server-username: MAVEN_CENTRAL_USERNAME # env variable for username in deploy (1) |
215 | | - server-password: MAVEN_CENTRAL_PASSWORD # env variable for token in deploy (2) |
216 | | - - name: Get Project Version |
217 | | - run: | |
218 | | - echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" | tee -a $GITHUB_ENV |
219 | | - - name: Cancel action for non SNAPSHOT push |
220 | | - if: github.event_name == 'push' && !endsWith(env.PROJECT_VERSION, '-SNAPSHOT') |
221 | | - uses: andymckay/cancel-action@0.5 |
222 | | - # from that point, if inputs.perform_release is true we perform a release, else we deploy snapshot |
223 | | - - name: Prepare release |
224 | | - if: inputs.perform_release |
225 | | - run: | |
226 | | - mvn --no-transfer-progress versions:set -DremoveSnapshot -DgenerateBackupPoms=false |
227 | | - RELEASE_VERSION=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` |
228 | | - echo "RELEASE_VERSION=${RELEASE_VERSION}" | tee -a $GITHUB_ENV |
229 | | - sed -i -e "s/^\:project-version\:\ .*/:project-version: ${RELEASE_VERSION}/g" README.adoc |
230 | | -
|
231 | | - - name: Build |
232 | | - run: mvn --batch-mode --no-transfer-progress package -P release -DskipTests |
233 | | - |
234 | | - # The sonatype maven plugin will decide the right destination depending on whether the project is SNAPSHOT or not |
235 | | - - name: Publish to Apache Maven Central |
236 | | - if: github.event_name == 'push' || inputs.push_maven |
237 | | - run: mvn --batch-mode --no-transfer-progress deploy -P release -DskipTests -Dgpg.signer=bc |
238 | | - env: |
239 | | - MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_USERNAME }} # must be the same env variable name as (1) |
240 | | - MAVEN_CENTRAL_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} # must be the same env variable name as (2) |
241 | | - MAVEN_GPG_KEY: ${{ secrets.GPG_KEY }} |
242 | | - MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |
243 | | - - name: Release commit and push |
244 | | - if: inputs.perform_release |
245 | | - uses: EndBug/add-and-commit@v9 |
246 | | - with: |
247 | | - message: 'chore(release): ${{ env.RELEASE_VERSION }} [skip ci]' |
248 | | - tag: '${{ env.RELEASE_VERSION }} --force' |
249 | | - default_author: github_actions |
250 | | - - name: Create Github release with JReleaser |
251 | | - if: inputs.perform_release |
252 | | - env: |
253 | | - JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
254 | | - run: | |
255 | | - mvn --batch-mode --no-transfer-progress -DskipTests jreleaser:full-release |
256 | | - - name: Prepare next snapshot |
257 | | - if: inputs.perform_release |
258 | | - run: | |
259 | | - mvn versions:set -DnextSnapshot -DgenerateBackupPoms=false |
260 | | - - name: Next snapshot commit and push |
261 | | - if: inputs.perform_release |
262 | | - uses: EndBug/add-and-commit@v9 |
263 | | - with: |
264 | | - message: 'chore(release): prepare next snapshot [skip ci]' |
265 | | - default_author: github_actions |
| 172 | +# test_external_amalgamation: |
| 173 | +# name: test external amalgamation |
| 174 | +# runs-on: macos-latest |
| 175 | +# steps: |
| 176 | +# - uses: actions/checkout@v6 |
| 177 | +# - uses: actions/setup-java@v5 |
| 178 | +# with: |
| 179 | +# distribution: 'temurin' |
| 180 | +# java-version: 25 |
| 181 | +# java-package: jdk |
| 182 | +# cache: 'maven' |
| 183 | +# - run: brew install sqlite3 |
| 184 | +# - name: Find SQLite directory |
| 185 | +# run: | |
| 186 | +# BREW_SQLITE_PREFIX=`brew --prefix sqlite3` |
| 187 | +# echo "SQLITE_DIR=$(dirname ${BREW_SQLITE_PREFIX})/$(readlink ${BREW_SQLITE_PREFIX})" | tee -a $GITHUB_ENV |
| 188 | +# - name: Make native lib |
| 189 | +# run: | |
| 190 | +# make native SQLITE_OBJ=${{ env.SQLITE_DIR }}/lib/libsqlite3.dylib SQLITE_HEADER=${{ env.SQLITE_DIR }}/include/sqlite3.h |
| 191 | +# - name: Test |
| 192 | +# run: mvn --batch-mode --no-transfer-progress test |
| 193 | +# |
| 194 | +# release: |
| 195 | +# name: Deploy |
| 196 | +# needs: [ lint, test, test_multiarch, test_external_amalgamation, test_graalvm ] |
| 197 | +# if: github.repository_owner == 'xerial' && github.ref == 'refs/heads/master' # only perform on latest master |
| 198 | +# runs-on: ubuntu-latest |
| 199 | +# steps: |
| 200 | +# - name: Print inputs |
| 201 | +# run: | |
| 202 | +# echo "Perform release: ${{ inputs.perform_release }}" |
| 203 | +# - uses: actions/checkout@v6 |
| 204 | +# if: github.event_name == 'push' || inputs.perform_release != true |
| 205 | +# # when performing a release we need the full git history to generate the changelog |
| 206 | +# - uses: actions/checkout@v6 |
| 207 | +# if: inputs.perform_release |
| 208 | +# with: |
| 209 | +# fetch-depth: 0 |
| 210 | +# - name: Set up Apache Maven Central |
| 211 | +# uses: actions/setup-java@v5 |
| 212 | +# with: # running setup-java again overwrites the settings.xml |
| 213 | +# distribution: 'temurin' |
| 214 | +# java-version: '11' |
| 215 | +# java-package: jdk |
| 216 | +# server-id: central # Value of the distributionManagement/repository/id field of the pom.xml |
| 217 | +# server-username: MAVEN_CENTRAL_USERNAME # env variable for username in deploy (1) |
| 218 | +# server-password: MAVEN_CENTRAL_PASSWORD # env variable for token in deploy (2) |
| 219 | +# - name: Get Project Version |
| 220 | +# run: | |
| 221 | +# echo "PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" | tee -a $GITHUB_ENV |
| 222 | +# - name: Cancel action for non SNAPSHOT push |
| 223 | +# if: github.event_name == 'push' && !endsWith(env.PROJECT_VERSION, '-SNAPSHOT') |
| 224 | +# uses: andymckay/cancel-action@0.5 |
| 225 | +# # from that point, if inputs.perform_release is true we perform a release, else we deploy snapshot |
| 226 | +# - name: Prepare release |
| 227 | +# if: inputs.perform_release |
| 228 | +# run: | |
| 229 | +# mvn --no-transfer-progress versions:set -DremoveSnapshot -DgenerateBackupPoms=false |
| 230 | +# RELEASE_VERSION=`mvn help:evaluate -Dexpression=project.version -q -DforceStdout` |
| 231 | +# echo "RELEASE_VERSION=${RELEASE_VERSION}" | tee -a $GITHUB_ENV |
| 232 | +# sed -i -e "s/^\:project-version\:\ .*/:project-version: ${RELEASE_VERSION}/g" README.adoc |
| 233 | +# |
| 234 | +# - name: Build |
| 235 | +# run: mvn --batch-mode --no-transfer-progress package -P release -DskipTests |
| 236 | +# |
| 237 | +# # The sonatype maven plugin will decide the right destination depending on whether the project is SNAPSHOT or not |
| 238 | +# - name: Publish to Apache Maven Central |
| 239 | +# if: github.event_name == 'push' || inputs.push_maven |
| 240 | +# run: mvn --batch-mode --no-transfer-progress deploy -P release -DskipTests -Dgpg.signer=bc |
| 241 | +# env: |
| 242 | +# MAVEN_CENTRAL_USERNAME: ${{ secrets.SONATYPE_USERNAME }} # must be the same env variable name as (1) |
| 243 | +# MAVEN_CENTRAL_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} # must be the same env variable name as (2) |
| 244 | +# MAVEN_GPG_KEY: ${{ secrets.GPG_KEY }} |
| 245 | +# MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} |
| 246 | +# - name: Release commit and push |
| 247 | +# if: inputs.perform_release |
| 248 | +# uses: EndBug/add-and-commit@v9 |
| 249 | +# with: |
| 250 | +# message: 'chore(release): ${{ env.RELEASE_VERSION }} [skip ci]' |
| 251 | +# tag: '${{ env.RELEASE_VERSION }} --force' |
| 252 | +# default_author: github_actions |
| 253 | +# - name: Create Github release with JReleaser |
| 254 | +# if: inputs.perform_release |
| 255 | +# env: |
| 256 | +# JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 257 | +# run: | |
| 258 | +# mvn --batch-mode --no-transfer-progress -DskipTests jreleaser:full-release |
| 259 | +# - name: Prepare next snapshot |
| 260 | +# if: inputs.perform_release |
| 261 | +# run: | |
| 262 | +# mvn versions:set -DnextSnapshot -DgenerateBackupPoms=false |
| 263 | +# - name: Next snapshot commit and push |
| 264 | +# if: inputs.perform_release |
| 265 | +# uses: EndBug/add-and-commit@v9 |
| 266 | +# with: |
| 267 | +# message: 'chore(release): prepare next snapshot [skip ci]' |
| 268 | +# default_author: github_actions |
0 commit comments