Skip to content

Commit 65b7c0d

Browse files
(java) 1153: Finish CI/CD setup (#1225)
1 parent 5818d83 commit 65b7c0d

File tree

5 files changed

+101
-27
lines changed

5 files changed

+101
-27
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,30 @@ jobs:
3838
if: matrix.language != 'java'
3939
uses: github/codeql-action/autobuild@v3
4040

41+
- name: Import Java GPG key
42+
#This step will be removed from here once we add build profile for java. Let's keep it here for now :)
43+
run: |
44+
set +e
45+
echo "$GPG_PRIVATE_KEY" | tr -d '\r' | sed '1s/^\xEF\xBB\xBF//' | sed '/^\s*$/d' | sed 's/^[ \t]*//;s/[ \t]*$//' > clean_gpg_key.asc
46+
gpg --batch --import clean_gpg_key.asc
47+
GPG_EXIT_CODE=$?
48+
49+
set -e
50+
if [ $GPG_EXIT_CODE -ge 3 ]; then
51+
echo "GPG import failed with code $GPG_EXIT_CODE"
52+
exit $GPG_EXIT_CODE
53+
else
54+
echo "GPG key imported successfully"
55+
fi
56+
env:
57+
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
58+
4159
- name: Build for Java and Kotlin
4260
if: matrix.language == 'java'
4361
run: |
44-
mvn clean install -f packages/java/metrics-core/pom.xml
45-
mvn clean install -f packages/java/metrics-spring/pom.xml
46-
mvn clean install -f packages/java/metrics-spring2/pom.xml
62+
mvn clean install -f packages/java/metrics-core/pom.xml -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
63+
mvn clean install -f packages/java/metrics-spring/pom.xml -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
64+
mvn clean install -f packages/java/metrics-spring2/pom.xml -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
4765
4866
- name: Perform CodeQL Analysis
4967
uses: github/codeql-action/analyze@v3

.github/workflows/java.yaml

Lines changed: 67 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66
- main
77
paths:
88
- 'packages/java/**'
9+
- '.github/**'
910

1011
jobs:
1112
build-and-deploy-core:
@@ -23,20 +24,33 @@ jobs:
2324
java-version: '17'
2425

2526
- name: Configure Maven settings.xml
26-
run: echo "${{ secrets.MAVEN_SETTINGS }}" > ~/.m2/settings.xml
27-
28-
- name: Build & Test metrics-core
29-
working-directory: packages/java
30-
run: mvn clean verify
27+
run: |
28+
mkdir -p ~/.m2
29+
echo "${{ secrets.MAVEN_SETTINGS }}" | base64 --decode > ~/.m2/settings.xml
3130
32-
- name: Import GPG Key
31+
- name: Import GPG key
3332
run: |
34-
echo "$GPG_PRIVATE_KEY" | base64 --decode | gpg --batch --import
33+
set +e
34+
echo "$GPG_PRIVATE_KEY" | tr -d '\r' | sed '1s/^\xEF\xBB\xBF//' | sed '/^\s*$/d' | sed 's/^[ \t]*//;s/[ \t]*$//' > clean_gpg_key.asc
35+
gpg --batch --import clean_gpg_key.asc
36+
GPG_EXIT_CODE=$?
37+
38+
set -e
39+
if [ $GPG_EXIT_CODE -ge 3 ]; then
40+
echo "GPG import failed with code $GPG_EXIT_CODE"
41+
exit $GPG_EXIT_CODE
42+
else
43+
echo "GPG key imported successfully"
44+
fi
3545
env:
3646
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
3747

48+
- name: Build & Test metrics-core
49+
working-directory: packages/java/metrics-core
50+
run: mvn clean verify -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
51+
3852
- name: Deploy metrics-core
39-
working-directory: packages/java
53+
working-directory: packages/java/metrics-core
4054
run: mvn deploy -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
4155

4256
build-and-deploy-for-spring3:
@@ -55,18 +69,35 @@ jobs:
5569
java-version: '17'
5670

5771
- name: Configure Maven settings.xml
58-
run: echo "${{ secrets.MAVEN_SETTINGS }}" > ~/.m2/settings.xml
59-
60-
- name: Build & Test metrics-spring
61-
working-directory: packages/java/metrics-spring
62-
run: mvn clean verify
72+
run: |
73+
mkdir -p ~/.m2
74+
echo "${{ secrets.MAVEN_SETTINGS }}" | base64 --decode > ~/.m2/settings.xml
6375
6476
- name: Import GPG Key
6577
run: |
66-
echo "$GPG_PRIVATE_KEY" | base64 --decode | gpg --batch --import
78+
set +e
79+
echo "$GPG_PRIVATE_KEY" | tr -d '\r' | sed '1s/^\xEF\xBB\xBF//' | sed '/^\s*$/d' | sed 's/^[ \t]*//;s/[ \t]*$//' > clean_gpg_key.asc
80+
gpg --batch --import clean_gpg_key.asc
81+
GPG_EXIT_CODE=$?
82+
83+
set -e
84+
if [ $GPG_EXIT_CODE -ge 3 ]; then
85+
echo "GPG import failed with code $GPG_EXIT_CODE"
86+
exit $GPG_EXIT_CODE
87+
else
88+
echo "GPG key imported successfully"
89+
fi
6790
env:
6891
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
6992

93+
- name: Build metrics-core for dependency
94+
working-directory: packages/java/metrics-core
95+
run: mvn clean install -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
96+
97+
- name: Build & Test metrics-spring
98+
working-directory: packages/java/metrics-spring
99+
run: mvn clean verify -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
100+
70101
- name: Deploy metrics-spring
71102
working-directory: packages/java/metrics-spring
72103
run: mvn deploy -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
@@ -87,19 +118,34 @@ jobs:
87118
java-version: '17'
88119

89120
- name: Configure Maven settings.xml
90-
run: echo "${{ secrets.MAVEN_SETTINGS }}" > ~/.m2/settings.xml
91-
92-
- name: Build & Test metrics-spring2
93-
working-directory: packages/java/metrics-spring2
94-
run: mvn clean verify
121+
run: |
122+
mkdir -p ~/.m2
123+
echo "${{ secrets.MAVEN_SETTINGS }}" | base64 --decode > ~/.m2/settings.xml
95124
96125
- name: Import GPG Key
97126
run: |
98-
echo "$GPG_PRIVATE_KEY" | base64 --decode | gpg --batch --import
127+
set +e
128+
echo "$GPG_PRIVATE_KEY" | tr -d '\r' | sed '1s/^\xEF\xBB\xBF//' | sed '/^\s*$/d' | sed 's/^[ \t]*//;s/[ \t]*$//' > clean_gpg_key.asc
129+
gpg --batch --import clean_gpg_key.asc GPG_EXIT_CODE=$?
130+
131+
set -e
132+
if [ $GPG_EXIT_CODE -ge 3 ]; then
133+
echo "GPG import failed with code $GPG_EXIT_CODE"
134+
exit $GPG_EXIT_CODE
135+
else
136+
echo "GPG key imported successfully"
137+
fi
99138
env:
100139
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
101140

141+
- name: Build metrics-core for dependency
142+
working-directory: packages/java/metrics-core
143+
run: mvn clean install -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
144+
145+
- name: Build & Test metrics-spring2
146+
working-directory: packages/java/metrics-spring2
147+
run: mvn clean verify -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
148+
102149
- name: Deploy metrics-spring2
103150
working-directory: packages/java/metrics-spring2
104151
run: mvn deploy -Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }}
105-

packages/java/metrics-core/pom.xml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,15 @@
2525

2626
<modelVersion>4.0.0</modelVersion>
2727
<groupId>com.readme</groupId>
28+
<name>metrics-core</name>
2829
<artifactId>metrics-core</artifactId>
2930
<version>0.1.0</version>
3031
<description>Core library for Readme.io JVM related SDKs</description>
3132

3233
<properties>
34+
<gpg.keyname>D3DAA0E037DED686</gpg.keyname>
35+
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
36+
3337
<maven.compiler.release>11</maven.compiler.release>
3438
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3539
<lombok.version>1.18.34</lombok.version>
@@ -163,7 +167,7 @@
163167
<executions>
164168
<execution>
165169
<id>sign-artifacts</id>
166-
<phase>deploy</phase>
170+
<phase>verify</phase>
167171
<goals>
168172
<goal>sign</goal>
169173
</goals>

packages/java/metrics-spring/pom.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
<description>Readme metrics SDK for Spring Boot 3+</description>
3939

4040
<properties>
41+
<gpg.keyname>D3DAA0E037DED686</gpg.keyname>
42+
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
43+
4144
<java.version>17</java.version>
4245
<readme-metrics.version>0.1.0</readme-metrics.version>
4346
</properties>
@@ -130,7 +133,7 @@
130133
<executions>
131134
<execution>
132135
<id>sign-artifacts</id>
133-
<phase>deploy</phase>
136+
<phase>verify</phase>
134137
<goals>
135138
<goal>sign</goal>
136139
</goals>

packages/java/metrics-spring2/pom.xml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@
3838
<description>Readme metrics SDK for Spring Boot 2+</description>
3939

4040
<properties>
41+
<gpg.keyname>D3DAA0E037DED686</gpg.keyname>
42+
<gpg.passphrase>${env.GPG_PASSPHRASE}</gpg.passphrase>
43+
4144
<java.version>11</java.version>
4245
<readme-metrics.version>0.1.0</readme-metrics.version>
4346
</properties>
@@ -130,7 +133,7 @@
130133
<executions>
131134
<execution>
132135
<id>sign-artifacts</id>
133-
<phase>deploy</phase>
136+
<phase>verify</phase>
134137
<goals>
135138
<goal>sign</goal>
136139
</goals>

0 commit comments

Comments
 (0)