1111 workflow_dispatch :
1212
1313jobs :
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+
1447 build :
1548 runs-on : ubuntu-latest
1649 steps :
2053 distribution : ' temurin'
2154 java-version : ' 11'
2255 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