Skip to content

Commit c4c141d

Browse files
authored
CI/Release of substrate related images (#161)
* first cut at substrate images * fix docker build
1 parent 58b67d7 commit c4c141d

27 files changed

Lines changed: 89 additions & 51 deletions

File tree

.circleci/release.sh

Lines changed: 47 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@ USER=fnproject
66
SERVICE=fn-java-fdk
77
RUNTIME_IMAGE=${SERVICE}
88
BUILD_IMAGE=${SERVICE}-build
9+
NATIVE_INIT_IMAGE=fn-java-native-init
10+
NATIVE_BUILD_IMAGE=fn-java-native
911

1012
release_version=$(cat release.version)
11-
if [[ $release_version =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
13+
if [[ ${release_version} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
1214
echo "Deploying version $release_version"
1315
else
1416
echo Invalid version $release_version
@@ -21,20 +23,20 @@ version_parts=(${release_version//./ })
2123
new_minor=$((${version_parts[2]}+1))
2224
new_version="${version_parts[0]}.${version_parts[1]}.$new_minor"
2325

24-
if [[ $new_version =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
26+
if [[ ${new_version} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
2527
echo "Next version $new_version"
2628
else
27-
echo Invalid new version $new_version
29+
echo Invalid new version ${new_version}
2830
exit 1
2931
fi
3032

3133

3234
# Deploy to bintray
3335
mvn -s ./settings-deploy.xml \
3436
-DskipTests \
35-
-DaltDeploymentRepository="fnproject-release-repo::default::$MVN_RELEASE_REPO" \
36-
-Dfnproject-release-repo.username="$MVN_RELEASE_USER" \
37-
-Dfnproject-release-repo.password="$MVN_RELEASE_PASSWORD" \
37+
-DaltDeploymentRepository="fnproject-release-repo::default::${MVN_RELEASE_REPO}" \
38+
-Dfnproject-release-repo.username="${MVN_RELEASE_USER}" \
39+
-Dfnproject-release-repo.password="${MVN_RELEASE_PASSWORD}" \
3840
clean deploy
3941

4042

@@ -43,38 +45,56 @@ mvn -s ./settings-deploy.xml \
4345
moving_version=${release_version%.*}-latest
4446

4547
## jdk8 runtime
46-
docker tag $USER/$RUNTIME_IMAGE:${release_version} $USER/$RUNTIME_IMAGE:latest
47-
docker tag $USER/$RUNTIME_IMAGE:${release_version} $USER/$RUNTIME_IMAGE:${moving_version}
48-
docker push $USER/$RUNTIME_IMAGE:latest
49-
docker push $USER/$RUNTIME_IMAGE:${release_version}
50-
docker push $USER/$RUNTIME_IMAGE:${moving_version}
48+
docker tag ${USER}/${RUNTIME_IMAGE}:${release_version} ${USER}/${RUNTIME_IMAGE}:latest
49+
docker tag ${USER}/${RUNTIME_IMAGE}:${release_version} ${USER}/${RUNTIME_IMAGE}:${moving_version}
50+
docker push ${USER}/${RUNTIME_IMAGE}:latest
51+
docker push ${USER}/${RUNTIME_IMAGE}:${release_version}
52+
docker push ${USER}/${RUNTIME_IMAGE}:${moving_version}
5153

5254
## jdk8 build
53-
docker tag $USER/$BUILD_IMAGE:${release_version} $USER/$BUILD_IMAGE:latest
54-
docker tag $USER/$BUILD_IMAGE:${release_version} $USER/$BUILD_IMAGE:${moving_version}
55-
docker push $USER/$BUILD_IMAGE:latest
56-
docker push $USER/$BUILD_IMAGE:${release_version}
57-
docker push $USER/$BUILD_IMAGE:${moving_version}
55+
docker tag ${USER}/${BUILD_IMAGE}:${release_version} ${USER}/${BUILD_IMAGE}:latest
56+
docker tag ${USER}/${BUILD_IMAGE}:${release_version} ${USER}/${BUILD_IMAGE}:${moving_version}
57+
docker push ${USER}/${BUILD_IMAGE}:latest
58+
docker push ${USER}/${BUILD_IMAGE}:${release_version}
59+
docker push ${USER}/${BUILD_IMAGE}:${moving_version}
5860

5961
## jdk9 runtime
60-
docker tag $USER/$RUNTIME_IMAGE:jdk9-${release_version} $USER/$RUNTIME_IMAGE:jdk9-latest
61-
docker tag $USER/$RUNTIME_IMAGE:jdk9-${release_version} $USER/$RUNTIME_IMAGE:jdk9-${moving_version}
62-
docker push $USER/$RUNTIME_IMAGE:jdk9-latest
63-
docker push $USER/$RUNTIME_IMAGE:jdk9-${release_version}
64-
docker push $USER/$RUNTIME_IMAGE:jdk9-${moving_version}
62+
docker tag ${USER}/${RUNTIME_IMAGE}:jdk9-${release_version} ${USER}/${RUNTIME_IMAGE}:jdk9-latest
63+
docker tag ${USER}/${RUNTIME_IMAGE}:jdk9-${release_version} ${USER}/${RUNTIME_IMAGE}:jdk9-${moving_version}
64+
docker push ${USER}/${RUNTIME_IMAGE}:jdk9-latest
65+
docker push ${USER}/${RUNTIME_IMAGE}:jdk9-${release_version}
66+
docker push ${USER}/${RUNTIME_IMAGE}:jdk9-${moving_version}
6567

6668
## jdk9 build
67-
docker tag $USER/$BUILD_IMAGE:jdk9-${release_version} $USER/$BUILD_IMAGE:jdk9-latest
68-
docker tag $USER/$BUILD_IMAGE:jdk9-${release_version} $USER/$BUILD_IMAGE:jdk9-${moving_version}
69-
docker push $USER/$BUILD_IMAGE:jdk9-latest
70-
docker push $USER/$BUILD_IMAGE:jdk9-${release_version}
71-
docker push $USER/$BUILD_IMAGE:jdk9-${moving_version}
69+
docker tag ${USER}/${BUILD_IMAGE}:jdk9-${release_version} ${USER}/${BUILD_IMAGE}:jdk9-latest
70+
docker tag ${USER}/${BUILD_IMAGE}:jdk9-${release_version} ${USER}/${BUILD_IMAGE}:jdk9-${moving_version}
71+
docker push ${USER}/${BUILD_IMAGE}:jdk9-latest
72+
docker push ${USER}/${BUILD_IMAGE}:jdk9-${release_version}
73+
docker push ${USER}/${BUILD_IMAGE}:jdk9-${moving_version}
74+
75+
76+
## native init image
77+
docker tag ${USER}/${NATIVE_INIT_IMAGE}:${release_version} ${USER}/${NATIVE_INIT_IMAGE}:latest
78+
docker tag ${USER}/${NATIVE_INIT_IMAGE}:${release_version} ${USER}/${NATIVE_INIT_IMAGE}:${moving_version}
79+
docker push ${USER}/${NATIVE_INIT_IMAGE}:latest
80+
docker push ${USER}/${NATIVE_INIT_IMAGE}:${release_version}
81+
docker push ${USER}/${NATIVE_INIT_IMAGE}:${moving_version}
82+
83+
)
84+
85+
(
86+
if [ -f images/build-native/native_build.image ] ; then
87+
native_build_image=$(cat images/build-native/native_build.image)
88+
docker tag ${native_build_image} ${USER}/${NATIVE_BUILD_IMAGE}:latest
89+
docker push ${USER}/${NATIVE_BUILD_IMAGE}:latest
90+
docker push ${native_build_image}
91+
fi
7292
)
7393

7494

7595
# Push result to git
7696

77-
echo $new_version > release.version
97+
echo ${new_version} > release.version
7898
git tag -a "$release_version" -m "version $release_version"
7999
git add release.version
80100
git commit -m "$SERVICE: post-$release_version version bump [skip ci]"

build.sh

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,32 @@ done
2525
mvn -B deploy -DaltDeploymentRepository=localStagingDir::default::file://${REPOSITORY_LOCATION}
2626

2727
(
28-
cd build-image
28+
cd images/build
2929
./docker-build.sh -t fnproject/fn-java-fdk-build:${BUILD_VERSION} .
3030
)
3131

3232
(
33-
cd build-image
33+
cd images/build
3434
./docker-build.sh -f Dockerfile-jdk9 -t fnproject/fn-java-fdk-build:jdk9-${BUILD_VERSION} .
3535
)
3636

3737
(
3838
cd runtime
39-
docker build -t fnproject/fn-java-fdk:${BUILD_VERSION} .
39+
docker build -t fnproject/fn-java-fdk:${BUILD_VERSION} -f ../images/runtime/Dockerfile .
4040
)
4141

4242
(
4343
cd runtime
44-
docker build -f Dockerfile-jdk9 -t fnproject/fn-java-fdk:jdk9-${BUILD_VERSION} .
44+
docker build -f ../images/runtime/Dockerfile-jdk9 -t fnproject/fn-java-fdk:jdk9-${BUILD_VERSION} .
4545
)
4646

47-
if [ "${BUILD_NATIVE_JAVA}" = true ]
48-
then
49-
(
50-
cd native-image
47+
(
48+
cd images/build-native
5149
./docker-build.sh
52-
)
53-
fi
50+
)
51+
52+
53+
(
54+
cd images/init-native
55+
./docker-build.sh
56+
)

images/build-native/README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Native Build image
2+
3+
This rebuilds the substrate build image for native java functions - this build does not run by default on all builds
4+
5+
To update the build image, make a change to `native.version` (the target version for the release image) on a branch and merge into master.
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/bin/sh
2+
native_version=$(cat native.version)
3+
set -e
4+
5+
native_image="fnproject/fn-java-native:${native_version}"
6+
if docker pull ${native_image} ; then
7+
echo ${native_image} already exists, skipping native build
8+
exit 0
9+
fi
10+
11+
docker build -t "fnproject/fn-java-native:${native_version}" .
12+
echo "fnproject/fn-java-native:${native_version}" > native_build.image

images/build-native/native.version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0.1.0

0 commit comments

Comments
 (0)