Skip to content

Commit

Permalink
feat(java17): use JRE17, run tests on JRE17, compile with JDK11
Browse files Browse the repository at this point in the history
  • Loading branch information
mattgogerly committed Nov 28, 2023
1 parent ecdc0ff commit ed20ad7
Show file tree
Hide file tree
Showing 11 changed files with 239 additions and 42 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,3 +72,28 @@ jobs:
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ github.ref_name }}-latest-unvalidated-ubuntu"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-unvalidated-ubuntu"
- name: Build and publish slim JRE 11 container image
# Only run this on repositories in the 'spinnaker' org, not on forks.
if: startsWith(github.repository, 'spinnaker/')
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile.java11.slim
platforms: linux/amd64,linux/arm64
push: true
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ github.ref_name }}-latest-java11-unvalidated"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-java11-unvalidated"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ github.ref_name }}-latest-java11-unvalidated-slim"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-java11-unvalidated-slim"
- name: Build and publish ubuntu JRE 11 container image
# Only run this on repositories in the 'spinnaker' org, not on forks.
if: startsWith(github.repository, 'spinnaker/')
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile.java11.ubuntu
push: true
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ github.ref_name }}-latest-java11-unvalidated-ubuntu"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-java11-unvalidated-ubuntu"
20 changes: 20 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,23 @@ jobs:
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:latest-ubuntu"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-ubuntu"
- name: Build slim JRE 11 container image
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile.java11.slim
platforms: linux/amd64,linux/arm64
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:latest-java11"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-java11"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:latest-java11-slim"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-java11-slim"
- name: Build ubuntu JRE 11 container image
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile.java11.ubuntu
platforms: linux/amd64,linux/arm64
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:latest-java11-ubuntu"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.build_variables.outputs.VERSION }}-java11-ubuntu"
25 changes: 25 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,31 @@ jobs:
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-unvalidated-ubuntu"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-${{ steps.build_variables.outputs.VERSION }}-unvalidated-ubuntu"
- name: Build and publish slim JRE 11 container image
# Only run this on repositories in the 'spinnaker' org, not on forks.
if: startsWith(github.repository, 'spinnaker/')
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile.java11.slim
platforms: linux/amd64,linux/arm64
push: true
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-java11-unvalidated"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-java11-unvalidated-slim"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-${{ steps.build_variables.outputs.VERSION }}-java11-unvalidated-slim"
- name: Build and publish ubuntu JRE 11 container image
# Only run this on repositories in the 'spinnaker' org, not on forks.
if: startsWith(github.repository, 'spinnaker/')
uses: docker/build-push-action@v4
with:
context: .
file: Dockerfile.java11.ubuntu
platforms: linux/amd64,linux/arm64
push: true
tags: |
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-java11-unvalidated-ubuntu"
"${{ env.CONTAINER_REGISTRY }}/${{ steps.build_variables.outputs.REPO }}:${{ steps.release_info.outputs.RELEASE_VERSION }}-${{ steps.build_variables.outputs.VERSION }}-java11-unvalidated-ubuntu"
- name: Create release
if: steps.release_info.outputs.SKIP_RELEASE == 'false'
uses: softprops/action-gh-release@v1
Expand Down
60 changes: 60 additions & 0 deletions Dockerfile.java11.slim
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
FROM alpine:3.16
LABEL maintainer="sig-platform@spinnaker.io"

ENV KUSTOMIZE_VERSION=3.8.6
ENV KUSTOMIZE4_VERSION=4.5.5
ENV PACKER_VERSION=1.8.1
ENV HELMFILE_VERSION=0.153.1


ARG TARGETARCH

WORKDIR /packer

RUN apk --no-cache add --update bash wget curl openssl openjdk11-jre git openssh-client && \
wget https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
unzip packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
rm packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip

ENV PATH "/packer:$PATH"

# Install Helm 3
RUN wget https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get-helm-3 && \
chmod +x get-helm-3 && \
./get-helm-3 && \
rm get-helm-3 && \
mv /usr/local/bin/helm /usr/local/bin/helm3

# Install Helm 2
RUN wget https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get && \
chmod +x get && \
./get --version v2.17.0 && \
rm get

RUN mkdir kustomize && \
curl -s -L https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_${TARGETARCH}.tar.gz|\
tar xvz -C kustomize/ && \
mv ./kustomize/kustomize /usr/local/bin/kustomize && \
rm -rf ./kustomize

RUN mkdir kustomize && \
curl -s -L https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${KUSTOMIZE4_VERSION}/kustomize_v${KUSTOMIZE4_VERSION}_linux_${TARGETARCH}.tar.gz|\
tar xvz -C kustomize/ && \
mv ./kustomize/kustomize /usr/local/bin/kustomize4 && \
rm -rf ./kustomize

RUN mkdir helmfile && \
curl -s -L https://github.com/helmfile/helmfile/releases/download/v${HELMFILE_VERSION}/helmfile_${HELMFILE_VERSION}_linux_${TARGETARCH}.tar.gz|\
tar xvz -C helmfile/ && \
mv ./helmfile/helmfile /usr/local/bin/helmfile && \
rm -rf ./helmfile

RUN addgroup -S -g 10111 spinnaker
RUN adduser -S -G spinnaker -u 10111 spinnaker
COPY rosco-web/build/install/rosco /opt/rosco
COPY rosco-web/config /opt/rosco
COPY halconfig/packer /opt/rosco/config/packer
RUN mkdir -p /opt/rosco/plugins && chown -R spinnaker:nogroup /opt/rosco/plugins
USER spinnaker
CMD ["/opt/rosco/bin/rosco"]

57 changes: 57 additions & 0 deletions Dockerfile.java11.ubuntu
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
FROM ubuntu:bionic
LABEL maintainer="sig-platform@spinnaker.io"

ENV KUSTOMIZE_VERSION=3.8.6
ENV KUSTOMIZE4_VERSION=4.5.5
ENV PACKER_VERSION=1.8.1
ENV HELMFILE_VERSION=0.153.1

ARG TARGETARCH

WORKDIR /packer

RUN apt-get update && apt-get -y install openjdk-11-jre-headless wget unzip curl git openssh-client && \
wget https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
unzip packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
rm packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip

ENV PATH "/packer:$PATH"

# Install Helm 3
RUN wget https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get-helm-3 && \
chmod +x get-helm-3 && \
./get-helm-3 && \
rm get-helm-3 && \
mv /usr/local/bin/helm /usr/local/bin/helm3

# Install Helm 2
RUN wget https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get && \
chmod +x get && \
./get --version v2.17.0 && \
rm get

RUN mkdir kustomize && \
curl -s -L https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_${TARGETARCH}.tar.gz|\
tar xvz -C kustomize/ && \
mv ./kustomize/kustomize /usr/local/bin/kustomize && \
rm -rf ./kustomize

RUN mkdir kustomize && \
curl -s -L https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${KUSTOMIZE4_VERSION}/kustomize_v${KUSTOMIZE4_VERSION}_linux_${TARGETARCH}.tar.gz|\
tar xvz -C kustomize/ && \
mv ./kustomize/kustomize /usr/local/bin/kustomize4 && \
rm -rf ./kustomize

RUN mkdir helmfile && \
curl -s -L https://github.com/helmfile/helmfile/releases/download/v${HELMFILE_VERSION}/helmfile_${HELMFILE_VERSION}_linux_${TARGETARCH}.tar.gz|\
tar xvz -C helmfile/ && \
mv ./helmfile/helmfile /usr/local/bin/helmfile && \
rm -rf ./helmfile

RUN adduser --system --uid 10111 --group spinnaker
COPY rosco-web/build/install/rosco /opt/rosco
COPY rosco-web/config /opt/rosco
COPY halconfig/packer /opt/rosco/config/packer
RUN mkdir -p /opt/rosco/plugins && chown -R spinnaker:nogroup /opt/rosco/plugins
USER spinnaker
CMD ["/opt/rosco/bin/rosco"]
2 changes: 1 addition & 1 deletion Dockerfile.slim
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ ARG TARGETARCH

WORKDIR /packer

RUN apk --no-cache add --update bash wget curl openssl openjdk11-jre git openssh-client && \
RUN apk --no-cache add --update bash wget curl openssl openjdk17-jre git openssh-client && \
wget https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
unzip packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
rm packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.ubuntu
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ ARG TARGETARCH

WORKDIR /packer

RUN apt-get update && apt-get -y install openjdk-11-jre-headless wget unzip curl git openssh-client && \
RUN apt-get update && apt-get -y install openjdk-17-jre-headless wget unzip curl git openssh-client && \
wget https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
unzip packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip && \
rm packer_${PACKER_VERSION}_linux_${TARGETARCH}.zip
Expand Down
11 changes: 11 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,17 @@ subprojects {
jvmArgs '-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8187'
}
}

tasks.withType(JavaCompile).configureEach {
javaCompiler = javaToolchains.compilerFor {
languageVersion = JavaLanguageVersion.of(11)
}
}
tasks.withType(Test).configureEach {
javaLauncher = javaToolchains.launcherFor {
languageVersion = JavaLanguageVersion.of(17)
}
}
}

defaultTasks ':rosco-web:run'
Original file line number Diff line number Diff line change
Expand Up @@ -3,51 +3,50 @@ package com.netflix.spinnaker.rosco.jobs.local
import com.netflix.spectator.api.DefaultRegistry
import com.netflix.spinnaker.rosco.api.BakeStatus
import com.netflix.spinnaker.rosco.jobs.JobRequest
import com.netflix.spinnaker.rosco.jobs.JobExecutor
import com.netflix.spinnaker.rosco.providers.util.TestDefaults
import spock.lang.Specification
import spock.lang.Subject
import spock.lang.Unroll

class JobExecutorLocalSpec extends Specification implements TestDefaults {

private static final String BASH_SCRIPT = '''\
for i in {1..5}; do
echo "Output $i"
sleep 0.1
echo "Error $i" >&2
sleep 0.1
done
echo "Final output"
'''.stripIndent()
private static final String EXPECTED_OUTPUT = '''\
Output 1
Output 2
Output 3
Output 4
Output 5
Final output
'''.stripIndent()
private static final String EXPECTED_LOGS = '''\
Error 1
Error 2
Error 3
Error 4
Error 5
'''.stripIndent()
private static final String COMBINED_OUTPUT = '''\
Output 1
Error 1
Output 2
Error 2
Output 3
Error 3
Output 4
Error 4
Output 5
Error 5
Final output
'''.stripIndent()
private static final String BASH_SCRIPT = """\
for i in {1..5}; do
echo "Output \$i"
sleep 0.1
echo "Error \$i" >&2
sleep 0.1
done
echo "Final output"
"""
private static final String EXPECTED_OUTPUT = """\
Output 1
Output 2
Output 3
Output 4
Output 5
Final output
"""
private static final String EXPECTED_LOGS = """\
Error 1
Error 2
Error 3
Error 4
Error 5
"""
private static final String COMBINED_OUTPUT = """\
Output 1
Error 1
Output 2
Error 2
Output 3
Error 3
Output 4
Error 4
Output 5
Error 5
Final output
"""

@Unroll
void 'job executor runs command and captures stdout and stderr with combineStdOutAndErr set to #combineStdOutAndErr'() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ class OCIBakeHandlerSpec extends Specification implements TestDefaults {
then:
with(options) {
cloudProvider == 'oracle'
baseImages.size == 2
baseImages.size() == 2
baseImages[0].id == 'ubuntu16_04'
baseImages[1].id == 'centos_7'
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -720,7 +720,7 @@ class BakeryControllerSpec extends Specification {
def result = bakeryController.bakeOptions()

then:
result.size == 2
result.size() == 2
result.find { it.cloudProvider == "aws" }.baseImages[0].id == "santa"
result.find { it.cloudProvider == "gce" }.baseImages[0].id == "claus"

Expand Down

0 comments on commit ed20ad7

Please sign in to comment.