version: 0.2 env: variables: OS_DISTRIBUTION: amazonlinux JAVA_BINARY_LOCATION: "/usr/bin/java" batch: build-matrix: static: ignore-failure: false env: privileged-mode: true dynamic: env: variables: DISTRO_VERSION: - "1" RUNTIME_VERSION: - "openjdk8" PLATFORM: - "linux/amd64" phases: install: commands: - > if [[ -z "${DOCKERHUB_USERNAME}" && -z "${DOCKERHUB_PASSWORD}" ]]; then echo "DockerHub credentials not set as CodeBuild environment variables. Continuing without docker login." else echo "Performing DockerHub login . . ." docker login -u $DOCKERHUB_USERNAME -p $DOCKERHUB_PASSWORD fi pre_build: commands: # Log some environment variables for troubleshooting - (mvn -v) # Install events (dependency of serialization) - (cd aws-lambda-java-events && mvn install) # Install serialization (dependency of RIC) - (cd aws-lambda-java-serialization && mvn install) - (cd aws-lambda-java-runtime-interface-client && mvn install -DmultiArch=false) - (cd aws-lambda-java-runtime-interface-client/test/integration/test-handler && mvn install) - export IMAGE_TAG="java-${OS_DISTRIBUTION}-${DISTRO_VERSION}:${RUNTIME_VERSION}" - echo "Extracting and including Runtime Interface Emulator" - SCRATCH_DIR=".scratch" - mkdir "${SCRATCH_DIR}" - RIE="aws-lambda-rie" - tar -xvf aws-lambda-java-runtime-interface-client/test/integration/resources/${RIE}.tar.gz --directory "${SCRATCH_DIR}" - > cp "aws-lambda-java-runtime-interface-client/test/integration/docker/Dockerfile.function.${OS_DISTRIBUTION}" \ "${SCRATCH_DIR}/Dockerfile.function.${OS_DISTRIBUTION}.tmp" - > echo "COPY ${SCRATCH_DIR}/${RIE} /usr/bin/${RIE}" >> \ "${SCRATCH_DIR}/Dockerfile.function.${OS_DISTRIBUTION}.tmp" - echo "Building image ${IMAGE_TAG}" - > docker build . \ -f "${SCRATCH_DIR}/Dockerfile.function.${OS_DISTRIBUTION}.tmp" \ -t "${IMAGE_TAG}" \ --build-arg RUNTIME_VERSION="${RUNTIME_VERSION}" \ --build-arg DISTRO_VERSION="${DISTRO_VERSION}" build: commands: - aws-lambda-java-runtime-interface-client/test/integration/codebuild/scripts/run_invocation_test.sh finally: - aws-lambda-java-runtime-interface-client/test/integration/codebuild/scripts/fetch_test_container_logs.sh - aws-lambda-java-runtime-interface-client/test/integration/codebuild/scripts/clean_up.sh