11
11
workflow_dispatch :
12
12
13
13
jobs :
14
+
15
+ setup :
16
+ runs-on : ubuntu-latest
17
+ outputs :
18
+ PACKAGE_VERSION : ${{ steps.builddata.outputs.PACKAGE_VERSION }}
19
+ MINOR_PACKAGE_VERSION : ${{ steps.builddata.outputs.MINOR_PACKAGE_VERSION }}
20
+ steps :
21
+ - uses : actions/checkout@v3
22
+ - uses : actions/setup-java@v3
23
+ with :
24
+ distribution : ' temurin'
25
+ java-version : ' 11'
26
+ cache : ' gradle'
27
+ - name : Validate Gradle wrapper
28
+ uses : gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
29
+
30
+ - name : BuildData
31
+ id : builddata
32
+ run : |
33
+ set -xev
34
+ env | sort
35
+
36
+ # handle full version number
37
+ VERSION=$(./gradlew -q printVersionName | head -n 1 | cut -d'-' -f1)
38
+ VERSION=${VERSION// }
39
+ echo Current version in code is :${VERSION}:
40
+ echo "PACKAGE_VERSION=${VERSION}" >> $GITHUB_OUTPUT
41
+ # handle minor version
42
+ MINOR_VERSION=$(echo $VERSION | sed 's/^\([0-9]\{1,\}\.[0-9]\{1,\}\)\..*/\1/')
43
+ MINOR_VERSION=${MINOR_VERSION// }
44
+ echo Current minor version in code is :${MINOR_VERSION}:
45
+ echo "MINOR_PACKAGE_VERSION=${MINOR_VERSION}" >> $GITHUB_OUTPUT
46
+
14
47
build :
15
48
runs-on : ubuntu-latest
16
49
steps :
20
53
distribution : ' temurin'
21
54
java-version : ' 11'
22
55
cache : ' gradle'
56
+ - name : Validate Gradle wrapper
57
+ uses : gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
58
+ - name : Build with Gradle
59
+ uses : gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
60
+ with :
61
+ arguments : build
62
+ - name : Create artifacts
63
+ env :
64
+ SIGNING_ID : ${{ secrets.SIGNING_ID }}
65
+ SIGNING_PASSWORD : ${{ secrets.SIGNING_PASSWORD }}
66
+ KEYRING_FILE : ${{ secrets.KEYRING_FILE }}
67
+ run : |
68
+ set -xev
69
+
70
+ echo $KEYRING_FILE > keyringfile.gpg
71
+ ./gradlew -Psigning.keyId=${SIGNING_ID} -Psigning.password=${SIGNING_PASSWORD} -Psigning.secretKeyRingFile=keyringfile.gpg publishShimJarPublicationToMavenLocal
72
+
73
+ tar -zcvf localmaven.tgz ${HOME}/.m2/repository/org/hyperledger
74
+ docker image save hyperledger/fabric-javaenv | gzip > fabric-javaenv.tar.gz
75
+ - name : Upload Docker image
76
+ uses : actions/upload-artifact@v3
77
+ with :
78
+ name : javaenv-docker-image
79
+ path : |
80
+ fabric-javaenv.tar.gz
81
+ - name : Upload JARs tgz
82
+ uses : actions/upload-artifact@v3
83
+ with :
84
+ name : Java JARs
85
+ path : |
86
+ localmaven.tgz
87
+
88
+ publishjars :
89
+ runs-on : ubuntu-latest
90
+ needs : [build]
91
+ if : startsWith(github.ref, 'refs/tags/')
92
+ steps :
93
+ - uses : actions/checkout@v3
94
+ - uses : actions/setup-java@v3
95
+ with :
96
+ distribution : ' temurin'
97
+ java-version : ' 11'
98
+ cache : ' gradle'
99
+ - name : Validate Gradle wrapper
100
+ uses : gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
101
+ - name : Push to registry
102
+ run : |
103
+ echo $KEYRING_FILE > keyringfile.gpg
104
+ ./gradlew -Psigning.keyId=${SIGNING_ID} -Psigning.password=${SIGNING_PASSWORD} -Psigning.secretKeyRingFile=keyringfile.gpg -PossrhUsername=${OSSRH_USER} -PossrhPassword=${OSSRH_PASSWORD} publishAllPublicationsToReleaseRepository
105
+ env :
106
+ SIGNING_ID : ossrh
107
+ SIGNING_PASSWORD : ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
108
+ KEYRING_FILE : ${{ secrets.OSSRH_GPG_SECRET_KEY }}
109
+ OSSRH_USER : ${{ secrets.OSSRH_USERNAME }}
110
+ OSSRH_PASSWORD : ${{ secrets.OSSRH_TOKEN }}}
111
+
112
+
113
+ publishdocker :
114
+ runs-on : ubuntu-latest
115
+ needs : [setup,build]
116
+ if : startsWith(github.ref, 'refs/tags/')
117
+ steps :
118
+ - uses : actions/checkout@v3
119
+ - uses : actions/setup-java@v3
120
+ with :
121
+ distribution : ' temurin'
122
+ java-version : ' 11'
123
+ cache : ' gradle'
124
+ - uses : actions/download-artifact@v3
125
+ with :
126
+ name : javaenv-docker-image
127
+ path : build/
128
+ - name : Push to registry
129
+ run : |
130
+ set -xev
131
+ wget -qO "$PWD/manifest-tool" https://github.com/estesp/manifest-tool/releases/download/v1.0.0/manifest-tool-linux-amd64
132
+ chmod +x ./manifest-tool
133
+
134
+ echo "Version strings are ${PACKAGE_VERSION} ${MINOR_PACKAGE_VERSION}"
135
+
136
+ docker image load --input build/fabric-javaenv.tar.gz
137
+ docker images
138
+ docker login ${DOCKER_REGISTRY_URL} --username=${DOCKER_REGISTRY_USERNAME} --password=${DOCKER_REGISTRY_PASSWORD}
139
+ echo "Logged in to docker registry"
140
+ # tag javaenv image to PACKAGE_VERSION
141
+ docker tag hyperledger/fabric-javaenv hyperledger/fabric-javaenv:amd64-${PACKAGE_VERSION}
142
+ # push javaenv to repository
143
+ docker push hyperledger/fabric-javaenv:amd64-${PACKAGE_VERSION}
144
+ ./manifest-tool push from-args --platforms linux/amd64 --template "hyperledger/fabric-javaenv:amd64-${PACKAGE_VERSION}" --target "hyperledger/fabric-javaenv:${PACKAGE_VERSION}"
145
+ ./manifest-tool push from-args --platforms linux/amd64 --template "hyperledger/fabric-javaenv:amd64-${PACKAGE_VERSION}" --target "hyperledger/fabric-javaenv:${MINOR_PACKAGE_VERSION}"
146
+ env :
147
+ DOCKER_REGISTRY_USERNAME : ${{ secrets.DOCKERHUB_USERNAME }}
148
+ DOCKER_REGISTRY_PASSWORD : ${{ secrets.DOCKERHUB_TOKEN }}
149
+ PACAKGE_VERSION : ${{ needs.setup.outputs.PACKAGE_VERSION }}
150
+ MINOR_PACKAGE_VERSION : ${{ needs.setup.outputs.MINOR_PACKAGE_VERSION }}
0 commit comments