Skip to content

Commit 4dbfb11

Browse files
Merge branch 'develop' into feature/update-mechanism
# Conflicts: # pom.xml [deploy]
2 parents 6e3bb15 + d7d273b commit 4dbfb11

7 files changed

Lines changed: 98 additions & 79 deletions

File tree

.github/workflows/build.yml

Lines changed: 83 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,31 +3,108 @@ on:
33
push:
44
pull_request_target:
55
types: [labeled]
6+
7+
env:
8+
JAVA_VERSION: 25
9+
610
jobs:
711
build:
812
name: Build and Test
913
runs-on: ubuntu-latest
10-
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
14+
permissions:
15+
id-token: write # Required for the attestations step
16+
attestations: write # Required for the attestations step
1117
steps:
1218
- uses: actions/checkout@v5
1319
- uses: actions/setup-java@v5
1420
with:
1521
distribution: 'temurin'
16-
java-version: 21
22+
java-version: ${{ env.JAVA_VERSION }}
1723
cache: 'maven'
1824
- name: Ensure to use tagged version
1925
if: startsWith(github.ref, 'refs/tags/')
2026
run: mvn versions:set --file ./pom.xml -DnewVersion=${GITHUB_REF##*/}
2127
- name: Build and Test
22-
id: buildAndTest
23-
run: mvn -B clean install
24-
- uses: actions/upload-artifact@v4
28+
run: mvn -B verify --no-transfer-progress
29+
- name: Attest
30+
if: startsWith(github.ref, 'refs/tags/')
31+
uses: actions/attest-build-provenance@v3
32+
with:
33+
subject-path: |
34+
target/*.jar
35+
target/*.pom
36+
- uses: actions/upload-artifact@v5
2537
with:
2638
name: artifacts
2739
path: target/*.jar
40+
41+
deploy-central:
42+
name: Deploy to Maven Central
43+
runs-on: ubuntu-latest
44+
permissions: {}
45+
needs: [build]
46+
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
47+
steps:
48+
- uses: actions/checkout@v5
49+
- uses: actions/setup-java@v5
50+
with:
51+
distribution: 'temurin'
52+
java-version: ${{ env.JAVA_VERSION }}
53+
cache: 'maven'
54+
server-id: central
55+
server-username: MAVEN_CENTRAL_USERNAME
56+
server-password: MAVEN_CENTRAL_PASSWORD
57+
- name: Verify project version matches tag
58+
if: startsWith(github.ref, 'refs/tags/')
59+
run: |
60+
PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
61+
test "$PROJECT_VERSION" = "${GITHUB_REF##*/}"
62+
- name: Deploy to Maven Central
63+
run: mvn deploy -B -DskipTests -Psign,deploy-central --no-transfer-progress
64+
env:
65+
MAVEN_CENTRAL_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
66+
MAVEN_CENTRAL_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
67+
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
68+
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
69+
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
70+
71+
deploy-github:
72+
name: Deploy to GitHub Packages
73+
runs-on: ubuntu-latest
74+
permissions:
75+
packages: write # Required for the deploy to GitHub Packages step
76+
needs: [build]
77+
if: github.repository_owner == 'cryptomator' && (startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[deploy]'))
78+
steps:
79+
- uses: actions/checkout@v5
80+
- uses: actions/setup-java@v5
81+
with:
82+
java-version: ${{ env.JAVA_VERSION }}
83+
distribution: 'temurin'
84+
cache: 'maven'
85+
- name: Verify project version matches tag
86+
if: startsWith(github.ref, 'refs/tags/')
87+
run: |
88+
PROJECT_VERSION=$(mvn help:evaluate "-Dexpression=project.version" -q -DforceStdout)
89+
test "$PROJECT_VERSION" = "${GITHUB_REF##*/}"
90+
- name: Deploy to GitHub Packages
91+
run: mvn deploy -B -DskipTests -Psign,deploy-github --no-transfer-progress
92+
env:
93+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
94+
MAVEN_GPG_PASSPHRASE: ${{ secrets.RELEASES_GPG_PASSPHRASE }}
95+
MAVEN_GPG_KEY: ${{ secrets.RELEASES_GPG_PRIVATE_KEY }} # Value of the GPG private key to import
96+
MAVEN_GPG_KEY_FINGERPRINT: ${{ vars.RELEASES_GPG_KEY_FINGERPRINT }}
97+
98+
release:
99+
name: Release
100+
runs-on: ubuntu-latest
101+
permissions:
102+
contents: write # Required for the release step
103+
needs: [deploy-central, deploy-github]
104+
if: startsWith(github.ref, 'refs/tags/')
105+
steps:
28106
- name: Create Release
29107
uses: softprops/action-gh-release@v2
30-
if: startsWith(github.ref, 'refs/tags/')
31108
with:
32109
prerelease: true
33110
token: ${{ secrets.CRYPTOBOT_RELEASE_TOKEN }}

.github/workflows/codeql-analysis.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ jobs:
2222
- uses: actions/setup-java@v5
2323
with:
2424
distribution: 'temurin'
25-
java-version: 21
25+
java-version: 25
2626
cache: 'maven'
2727
- name: Initialize CodeQL
28-
uses: github/codeql-action/init@v3
28+
uses: github/codeql-action/init@v4
2929
with:
3030
languages: java
3131
- name: Build
3232
run: mvn -B compile
3333
- name: Perform CodeQL Analysis
34-
uses: github/codeql-action/analyze@v3
34+
uses: github/codeql-action/analyze@v4

.github/workflows/publish-central.yml

Lines changed: 0 additions & 35 deletions
This file was deleted.

.github/workflows/publish-github.yml

Lines changed: 0 additions & 24 deletions
This file was deleted.

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,23 @@
2727

2828
<properties>
2929
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
30-
<jdk.version>21</jdk.version>
30+
<jdk.version>25</jdk.version>
3131

3232
<slf4j.version>2.0.17</slf4j.version>
3333
<jackson.version>2.20.0</jackson.version>
3434
<jetbrains-annotation.version>26.0.2-1</jetbrains-annotation.version>
3535

3636
<!-- Test dependencies -->
37-
<junit.version>5.13.4</junit.version>
37+
<junit.version>6.0.0</junit.version>
3838
<mockito.version>5.20.0</mockito.version>
3939

4040
<!-- Build dependencies -->
41-
<mvn-compiler.version>3.14.0</mvn-compiler.version>
41+
<mvn-compiler.version>3.14.1</mvn-compiler.version>
4242
<mvn-source.version>3.3.1</mvn-source.version>
4343
<mvn-surefire.version>3.5.4</mvn-surefire.version>
44-
<mvn-javadoc.version>3.11.3</mvn-javadoc.version>
44+
<mvn-javadoc.version>3.12.0</mvn-javadoc.version>
4545
<mvn-gpg.version>3.2.8</mvn-gpg.version>
46-
<central-publishing.version>0.8.0</central-publishing.version>
46+
<central-publishing.version>0.9.0</central-publishing.version>
4747
</properties>
4848

4949
<licenses>
@@ -137,7 +137,7 @@
137137
</executions>
138138
<configuration>
139139
<quiet>true</quiet>
140-
<release>21</release>
140+
<release>25</release>
141141
<tags>
142142
<!-- workaround for "unknown tag: implNote", see https://blog.codefx.org/java/new-javadoc-tags/#Maven -->
143143
<tag>

src/main/java/org/cryptomator/integrations/update/DownloadUpdateMechanism.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,11 @@ private class FirstStep extends DownloadUpdateStep {
104104
private final DownloadUpdateInfo updateInfo;
105105

106106
public FirstStep(Path workDir, DownloadUpdateInfo updateInfo) {
107-
super(URI.create(updateInfo.asset().downloadUrl),
108-
workDir.resolve(updateInfo.asset().name),
109-
HexFormat.of().withLowerCase().parseHex(updateInfo.asset().digest.substring(7)), // remove "sha256:" prefix
110-
updateInfo.asset().size);
107+
var uri = URI.create(updateInfo.asset().downloadUrl);
108+
var destination = workDir.resolve(updateInfo.asset().name);
109+
var digest = HexFormat.of().withLowerCase().parseHex(updateInfo.asset().digest.substring(7)); // remove "sha256:" prefix
110+
var size = updateInfo.asset().size;
111+
super(uri, destination, digest, size);
111112
this.workDir = workDir;
112113
this.updateInfo = updateInfo;
113114
}

0 commit comments

Comments
 (0)