@@ -10,130 +10,42 @@ jobs:
1010 name : createrelease
1111 runs-on : ubuntu-latest
1212 if : startsWith(github.ref, 'refs/tags/')
13- steps :
14- - name : Check out code
15- uses : actions/checkout@v4
16- - name : create release
17- id : create_release
18- uses : actions/create-release@v1
19- env :
20- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
21- with :
22- tag_name : ${{ github.ref }}
23- release_name : ${{ github.ref }}
24- draft : true
25- prerelease : false
26- - name : Output Release URL File
27- run : echo "${{ steps.create_release.outputs.upload_url }}" > release_url.txt
28- - name : Save Release URL file for publish
29- uses : actions/upload-artifact@v4
30- with :
31- name : release_url
32- path : release_url.txt
33- -
uses :
little-core-labs/[email protected] 34- id : tagName
35- - name : Output git tag
36- run : echo "${{ steps.tagName.outputs.tag }}" > git_tag.txt
37- - name : Save git tag file for publish
38- uses : actions/upload-artifact@v4
39- with :
40- name : git_tag
41- path : git_tag.txt
42-
43-
44- build_and_upload :
45- needs : createrelease
46- name : build_and_upload
47- runs-on : ubuntu-latest
4813 steps :
4914 - uses : actions/checkout@v4
15+
5016 - uses : actions/setup-java@v4
5117 with :
5218 distribution : ' temurin'
5319 java-version : ' 17'
54- cache : ' maven'
55- - name : Set up GPG
56- run : |
57- echo "$GPG_PRIVATE_KEY" | gpg --batch --import
58- env :
59- GPG_PRIVATE_KEY : ${{ secrets.GPG_PRIVATE_KEY }}
60- - name : Build with Maven
61- run : mvn -B -Psign -Dgpg.passphrase=${GPG_PASSPHRASE} -Dtest=org.purejava.integrations.keychain.KeePassXCAccessTest install --file pom.xml
62- env :
63- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
6420
65- - name : Load Release URL File from release job
66- uses : actions/download-artifact@v4
67- with :
68- name : release_url
69- - name : Get Release File Name & Upload URL
70- id : get_release_info
71- run : |
72- value=`cat release_url.txt`
73- echo ::set-output name=upload_url::$value
74- - name : Load git tag from release job
75- uses : actions/download-artifact@v4
76- with :
77- name : git_tag
78- - name : Get git tag info
79- id : get_tag_info
80- run : |
81- value=`cat git_tag.txt`
82- echo ::set-output name=git_tag::$value
21+ - name : Setup Gradle
22+ uses : gradle/actions/setup-gradle@v4
8323
84- - name : Sign uber jar with key 5BFB2076ABC48776
24+ - name : Import GPG key
8525 run : |
86- echo "${GPG_PASSPHRASE}" | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 5BFB2076ABC48776 --detach-sign ./target/keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.jar
87- env :
88- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
89- - name : Sign source tarball with key 5BFB2076ABC48776
90- if : startsWith(github.ref, 'refs/tags/')
91- run : |
92- git archive --prefix="keepassxc-cryptomator-${{ github.ref_name }}/" -o "keepassxc-cryptomator-${{ github.ref_name }}.tar.gz" ${{ github.ref }}
93- echo "${GPG_PASSPHRASE}" | gpg --batch --quiet --passphrase-fd 0 --pinentry-mode loopback -u 5BFB2076ABC48776 --detach-sign keepassxc-cryptomator-*.tar.gz
94- env :
95- GPG_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
96-
97- - name : Upload uber jar
98- id : upload-release-asset
99- 26+ echo "$GPG_SIGNING_KEY_PW" | gpg --batch --import --yes --passphrase-fd 0 <(echo -n "$GPG_SIGNING_KEY_B64" | base64 --decode)
10027 env :
101- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
102- with :
103- upload_url : ${{ steps.get_release_info.outputs.upload_url }}
104- asset_path : ./target/keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.jar
105- asset_name : keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.jar
106- asset_content_type : application/java-archive
28+ GPG_SIGNING_KEY_B64 : ${{ secrets.GPG_PRIVATE_KEY_B64 }}
29+ GPG_SIGNING_KEY_PW : ${{ secrets.GPG_PASSPHRASE }}
10730
108- - name : Upload signature file for uber jar
109- id : upload-signature-file-for-uber-jar
110- 31+ - name : Setup GPG key information
32+ run : |
33+ mkdir -p ~/.gradle ~/.gnupg
34+ echo "signing.gnupg.homeDir=/home/runner/.gnupg" >> ~/.gradle/gradle.properties
35+ echo "signing.gnupg.executable=gpg" >> ~/.gradle/gradle.properties
36+ echo "signing.gnupg.keyName=ABC48776" >> ~/.gradle/gradle.properties
37+ echo "signing.gnupg.passphrase=${GPG_SIGNING_KEY_PW}" >> ~/.gradle/gradle.properties
11138 env :
112- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
113- with :
114- upload_url : ${{ steps.get_release_info.outputs.upload_url }}
115- asset_path : ./target/keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.jar.sig
116- asset_name : keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.jar.sig
117- asset_content_type : application/pgp-signature
39+ GPG_SIGNING_KEY_PW : ${{ secrets.GPG_PASSPHRASE }}
11840
119- - name : Upload tarball
120- id : upload-release-asset-2
121- 41+ - name : Build package
42+ run : ./gradlew clean build
12243 env :
123- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
124- with :
125- upload_url : ${{ steps.get_release_info.outputs.upload_url }}
126- asset_path : ./keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.tar.gz
127- asset_name : keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.tar.gz
128- asset_content_type : application/tar+gzip
44+ GPG_SIGNING_KEY : ${{ secrets.GPG_PRIVATE_KEY }}
45+ GPG_SIGNING_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
12946
130- - name : Upload signature file for source tarball
131- id : upload-signature-file-for-source-tarball
132- 47+ - name : Release package
48+ run : ./gradlew githubRelease
13349 env :
134- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
135- with :
136- upload_url : ${{ steps.get_release_info.outputs.upload_url }}
137- asset_path : ./keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.tar.gz.sig
138- asset_name : keepassxc-cryptomator-${{ steps.get_tag_info.outputs.git_tag }}.tar.gz.sig
139- asset_content_type : application/pgp-signature
50+ GPG_SIGNING_KEY : ${{ secrets.GPG_PRIVATE_KEY }}
51+ GPG_SIGNING_PASSPHRASE : ${{ secrets.GPG_PASSPHRASE }}
0 commit comments