Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 47 additions & 27 deletions .circleci/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@ USER=fnproject
SERVICE=fn-java-fdk
RUNTIME_IMAGE=${SERVICE}
BUILD_IMAGE=${SERVICE}-build
NATIVE_INIT_IMAGE=fn-java-native-init
NATIVE_BUILD_IMAGE=fn-java-native

release_version=$(cat release.version)
if [[ $release_version =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
if [[ ${release_version} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
echo "Deploying version $release_version"
else
echo Invalid version $release_version
Expand All @@ -21,20 +23,20 @@ version_parts=(${release_version//./ })
new_minor=$((${version_parts[2]}+1))
new_version="${version_parts[0]}.${version_parts[1]}.$new_minor"

if [[ $new_version =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
if [[ ${new_version} =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then
echo "Next version $new_version"
else
echo Invalid new version $new_version
echo Invalid new version ${new_version}
exit 1
fi


# Deploy to bintray
mvn -s ./settings-deploy.xml \
-DskipTests \
-DaltDeploymentRepository="fnproject-release-repo::default::$MVN_RELEASE_REPO" \
-Dfnproject-release-repo.username="$MVN_RELEASE_USER" \
-Dfnproject-release-repo.password="$MVN_RELEASE_PASSWORD" \
-DaltDeploymentRepository="fnproject-release-repo::default::${MVN_RELEASE_REPO}" \
-Dfnproject-release-repo.username="${MVN_RELEASE_USER}" \
-Dfnproject-release-repo.password="${MVN_RELEASE_PASSWORD}" \
clean deploy


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

## jdk8 runtime
docker tag $USER/$RUNTIME_IMAGE:${release_version} $USER/$RUNTIME_IMAGE:latest
docker tag $USER/$RUNTIME_IMAGE:${release_version} $USER/$RUNTIME_IMAGE:${moving_version}
docker push $USER/$RUNTIME_IMAGE:latest
docker push $USER/$RUNTIME_IMAGE:${release_version}
docker push $USER/$RUNTIME_IMAGE:${moving_version}
docker tag ${USER}/${RUNTIME_IMAGE}:${release_version} ${USER}/${RUNTIME_IMAGE}:latest
docker tag ${USER}/${RUNTIME_IMAGE}:${release_version} ${USER}/${RUNTIME_IMAGE}:${moving_version}
docker push ${USER}/${RUNTIME_IMAGE}:latest
docker push ${USER}/${RUNTIME_IMAGE}:${release_version}
docker push ${USER}/${RUNTIME_IMAGE}:${moving_version}

## jdk8 build
docker tag $USER/$BUILD_IMAGE:${release_version} $USER/$BUILD_IMAGE:latest
docker tag $USER/$BUILD_IMAGE:${release_version} $USER/$BUILD_IMAGE:${moving_version}
docker push $USER/$BUILD_IMAGE:latest
docker push $USER/$BUILD_IMAGE:${release_version}
docker push $USER/$BUILD_IMAGE:${moving_version}
docker tag ${USER}/${BUILD_IMAGE}:${release_version} ${USER}/${BUILD_IMAGE}:latest
docker tag ${USER}/${BUILD_IMAGE}:${release_version} ${USER}/${BUILD_IMAGE}:${moving_version}
docker push ${USER}/${BUILD_IMAGE}:latest
docker push ${USER}/${BUILD_IMAGE}:${release_version}
docker push ${USER}/${BUILD_IMAGE}:${moving_version}

## jdk9 runtime
docker tag $USER/$RUNTIME_IMAGE:jdk9-${release_version} $USER/$RUNTIME_IMAGE:jdk9-latest
docker tag $USER/$RUNTIME_IMAGE:jdk9-${release_version} $USER/$RUNTIME_IMAGE:jdk9-${moving_version}
docker push $USER/$RUNTIME_IMAGE:jdk9-latest
docker push $USER/$RUNTIME_IMAGE:jdk9-${release_version}
docker push $USER/$RUNTIME_IMAGE:jdk9-${moving_version}
docker tag ${USER}/${RUNTIME_IMAGE}:jdk9-${release_version} ${USER}/${RUNTIME_IMAGE}:jdk9-latest
docker tag ${USER}/${RUNTIME_IMAGE}:jdk9-${release_version} ${USER}/${RUNTIME_IMAGE}:jdk9-${moving_version}
docker push ${USER}/${RUNTIME_IMAGE}:jdk9-latest
docker push ${USER}/${RUNTIME_IMAGE}:jdk9-${release_version}
docker push ${USER}/${RUNTIME_IMAGE}:jdk9-${moving_version}

## jdk9 build
docker tag $USER/$BUILD_IMAGE:jdk9-${release_version} $USER/$BUILD_IMAGE:jdk9-latest
docker tag $USER/$BUILD_IMAGE:jdk9-${release_version} $USER/$BUILD_IMAGE:jdk9-${moving_version}
docker push $USER/$BUILD_IMAGE:jdk9-latest
docker push $USER/$BUILD_IMAGE:jdk9-${release_version}
docker push $USER/$BUILD_IMAGE:jdk9-${moving_version}
docker tag ${USER}/${BUILD_IMAGE}:jdk9-${release_version} ${USER}/${BUILD_IMAGE}:jdk9-latest
docker tag ${USER}/${BUILD_IMAGE}:jdk9-${release_version} ${USER}/${BUILD_IMAGE}:jdk9-${moving_version}
docker push ${USER}/${BUILD_IMAGE}:jdk9-latest
docker push ${USER}/${BUILD_IMAGE}:jdk9-${release_version}
docker push ${USER}/${BUILD_IMAGE}:jdk9-${moving_version}


## native init image
docker tag ${USER}/${NATIVE_INIT_IMAGE}:${release_version} ${USER}/${NATIVE_INIT_IMAGE}:latest
docker tag ${USER}/${NATIVE_INIT_IMAGE}:${release_version} ${USER}/${NATIVE_INIT_IMAGE}:${moving_version}
docker push ${USER}/${NATIVE_INIT_IMAGE}:latest
docker push ${USER}/${NATIVE_INIT_IMAGE}:${release_version}
docker push ${USER}/${NATIVE_INIT_IMAGE}:${moving_version}

)

(
if [ -f images/build-native/native_build.image ] ; then
native_build_image=$(cat images/build-native/native_build.image)
docker tag ${native_build_image} ${USER}/${NATIVE_BUILD_IMAGE}:latest
docker push ${USER}/${NATIVE_BUILD_IMAGE}:latest
docker push ${native_build_image}
fi
)


# Push result to git

echo $new_version > release.version
echo ${new_version} > release.version
git tag -a "$release_version" -m "version $release_version"
git add release.version
git commit -m "$SERVICE: post-$release_version version bump [skip ci]"
Expand Down
23 changes: 13 additions & 10 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,29 +25,32 @@ done
mvn -B deploy -DaltDeploymentRepository=localStagingDir::default::file://${REPOSITORY_LOCATION}

(
cd build-image
cd images/build
./docker-build.sh -t fnproject/fn-java-fdk-build:${BUILD_VERSION} .
)

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

(
cd runtime
docker build -t fnproject/fn-java-fdk:${BUILD_VERSION} .
docker build -t fnproject/fn-java-fdk:${BUILD_VERSION} -f ../images/runtime/Dockerfile .
)

(
cd runtime
docker build -f Dockerfile-jdk9 -t fnproject/fn-java-fdk:jdk9-${BUILD_VERSION} .
docker build -f ../images/runtime/Dockerfile-jdk9 -t fnproject/fn-java-fdk:jdk9-${BUILD_VERSION} .
)

if [ "${BUILD_NATIVE_JAVA}" = true ]
then
(
cd native-image
(
cd images/build-native
./docker-build.sh
)
fi
)


(
cd images/init-native
./docker-build.sh
)
File renamed without changes.
5 changes: 5 additions & 0 deletions images/build-native/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Native Build image

This rebuilds the substrate build image for native java functions - this build does not run by default on all builds

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.
12 changes: 12 additions & 0 deletions images/build-native/docker-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/sh
native_version=$(cat native.version)
set -e

native_image="fnproject/fn-java-native:${native_version}"
if docker pull ${native_image} ; then
echo ${native_image} already exists, skipping native build
exit 0
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍
Nice!

fi

docker build -t "fnproject/fn-java-native:${native_version}" .
echo "fnproject/fn-java-native:${native_version}" > native_build.image
1 change: 1 addition & 0 deletions images/build-native/native.version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
0.1.0
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
2 changes: 2 additions & 0 deletions images/init-native/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Native init image

6 changes: 6 additions & 0 deletions images/init-native/docker-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh
if [ -z "${FN_FDK_VERSION}" ]; then
FN_FDK_VERSION=$(cat ../../release.version)
fi
sed -i.bak -e "s|<fdk\\.version>.*</fdk\\.version>|<fdk.version>${FN_FDK_VERSION}</fdk.version>|" pom.xml && rm pom.xml.bak
docker build -t fnproject/fn-java-native-init:${FN_FDK_VERSION} -f Dockerfile-init-image .
File renamed without changes.
File renamed without changes.
File renamed without changes.
3 changes: 3 additions & 0 deletions images/runtime/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Fn Java runtime base image

This image is used as a base image for functions - it includes a JDK and the latest version of the runtime
6 changes: 0 additions & 6 deletions native-image/docker-build.sh

This file was deleted.

8 changes: 0 additions & 8 deletions native-image/init-image/docker-build.sh

This file was deleted.