mirror of
https://github.com/apple/pkl.git
synced 2026-04-25 09:48:41 +02:00
Adds logic to build (but not deploy) commits on the release branch. This is so we have CI coverage for new patch releases of older versions.
914 lines
30 KiB
YAML
914 lines
30 KiB
YAML
# Generated from CircleCI.pkl. DO NOT EDIT.
|
|
version: '2.1'
|
|
orbs:
|
|
pr-approval: apple/pr-approval@0.1.0
|
|
jobs:
|
|
pkl-cli-macOS-amd64-release:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: /usr/sbin/softwareupdate --install-rosetta --agree-to-license
|
|
name: Installing Rosetta 2
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace -DreleaseBuild=true pkl-cli:macExecutableAmd64 pkl-core:testMacExecutableAmd64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
resource_class: macos.m1.large.gen1
|
|
macos:
|
|
xcode: 15.2.0
|
|
pkl-cli-linux-amd64-release:
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: staticdeps-amd64
|
|
name: Restore static deps from cache
|
|
- run:
|
|
command: |-
|
|
sed -ie '/\[ol8_codeready_builder\]/,/^$/s/enabled=0/enabled=1/g' /etc/yum.repos.d/oracle-linux-ol8.repo \
|
|
&& microdnf -y install util-linux tree coreutils-single findutils curl tar gzip git zlib-devel gcc-c++ make openssl glibc-langpack-en libstdc++-static \
|
|
&& microdnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
# install jdk
|
|
curl -L \
|
|
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.20.1_1.tar.gz -o /tmp/jdk.tar.gz
|
|
|
|
mkdir /jdk \
|
|
&& cd /jdk \
|
|
&& cat /tmp/jdk.tar.gz | tar --strip-components=1 -xzC .
|
|
|
|
mkdir -p ~/staticdeps/bin
|
|
|
|
cp /usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.a ~/staticdeps
|
|
|
|
# install zlib
|
|
if [[ ! -f ~/staticdeps/include/zlib.h ]]; then
|
|
curl -L https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz -o /tmp/zlib.tar.gz
|
|
|
|
mkdir -p /tmp/dep_zlib-1.2.13 \
|
|
&& cd /tmp/dep_zlib-1.2.13 \
|
|
&& cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "zlib-1.2.13: configure..." && ./configure --static --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "zlib-1.2.13: make..." && make -s -j4 \
|
|
&& echo "zlib-1.2.13: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_zlib-1.2.13
|
|
fi
|
|
|
|
# install musl
|
|
if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then
|
|
curl -L https://musl.libc.org/releases/musl-1.2.2.tar.gz -o /tmp/musl.tar.gz
|
|
|
|
mkdir -p /tmp/dep_musl-1.2.2 \
|
|
&& cd /tmp/dep_musl-1.2.2 \
|
|
&& cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "musl-1.2.2: configure..." && ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "musl-1.2.2: make..." && make -s -j4 \
|
|
&& echo "musl-1.2.2: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_musl-1.2.2
|
|
|
|
# native-image expects to find an executable at this path.
|
|
ln -s ~/staticdeps/bin/musl-gcc ~/staticdeps/bin/x86_64-linux-musl-gcc
|
|
fi
|
|
name: Set up environment
|
|
shell: '#!/bin/bash -exo pipefail'
|
|
- save_cache:
|
|
paths:
|
|
- ~/staticdeps
|
|
key: staticdeps-amd64
|
|
name: Save statics deps to cache
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace -DreleaseBuild=true pkl-cli:linuxExecutableAmd64 pkl-core:testLinuxExecutableAmd64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
JAVA_HOME: /jdk
|
|
resource_class: xlarge
|
|
docker:
|
|
- image: oraclelinux:8-slim
|
|
pkl-cli-macOS-aarch64-release:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: git apply patches/graalVm23.patch
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace -DreleaseBuild=true pkl-cli:macExecutableAarch64 pkl-core:testMacExecutableAarch64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
resource_class: macos.m1.large.gen1
|
|
macos:
|
|
xcode: 15.2.0
|
|
pkl-cli-linux-aarch64-release:
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: staticdeps-aarch64
|
|
name: Restore static deps from cache
|
|
- run:
|
|
command: |-
|
|
sed -ie '/\[ol8_codeready_builder\]/,/^$/s/enabled=0/enabled=1/g' /etc/yum.repos.d/oracle-linux-ol8.repo \
|
|
&& microdnf -y install util-linux tree coreutils-single findutils curl tar gzip git zlib-devel gcc-c++ make openssl glibc-langpack-en libstdc++-static \
|
|
&& microdnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
# install jdk
|
|
curl -L \
|
|
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.20.1_1.tar.gz -o /tmp/jdk.tar.gz
|
|
|
|
mkdir /jdk \
|
|
&& cd /jdk \
|
|
&& cat /tmp/jdk.tar.gz | tar --strip-components=1 -xzC .
|
|
|
|
mkdir -p ~/staticdeps/bin
|
|
|
|
cp /usr/lib/gcc/aarch64-redhat-linux/8/libstdc++.a ~/staticdeps
|
|
|
|
# install zlib
|
|
if [[ ! -f ~/staticdeps/include/zlib.h ]]; then
|
|
curl -L https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz -o /tmp/zlib.tar.gz
|
|
|
|
mkdir -p /tmp/dep_zlib-1.2.13 \
|
|
&& cd /tmp/dep_zlib-1.2.13 \
|
|
&& cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "zlib-1.2.13: configure..." && ./configure --static --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "zlib-1.2.13: make..." && make -s -j4 \
|
|
&& echo "zlib-1.2.13: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_zlib-1.2.13
|
|
fi
|
|
name: Set up environment
|
|
shell: '#!/bin/bash -exo pipefail'
|
|
- save_cache:
|
|
paths:
|
|
- ~/staticdeps
|
|
key: staticdeps-aarch64
|
|
name: Save statics deps to cache
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace -DreleaseBuild=true pkl-cli:linuxExecutableAarch64 pkl-core:testLinuxExecutableAarch64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
JAVA_HOME: /jdk
|
|
resource_class: arm.xlarge
|
|
docker:
|
|
- image: arm64v8/oraclelinux:8-slim
|
|
pkl-cli-linux-alpine-amd64-release:
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: staticdeps-amd64
|
|
name: Restore static deps from cache
|
|
- run:
|
|
command: |-
|
|
sed -ie '/\[ol8_codeready_builder\]/,/^$/s/enabled=0/enabled=1/g' /etc/yum.repos.d/oracle-linux-ol8.repo \
|
|
&& microdnf -y install util-linux tree coreutils-single findutils curl tar gzip git zlib-devel gcc-c++ make openssl glibc-langpack-en libstdc++-static \
|
|
&& microdnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
# install jdk
|
|
curl -L \
|
|
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.20.1_1.tar.gz -o /tmp/jdk.tar.gz
|
|
|
|
mkdir /jdk \
|
|
&& cd /jdk \
|
|
&& cat /tmp/jdk.tar.gz | tar --strip-components=1 -xzC .
|
|
|
|
mkdir -p ~/staticdeps/bin
|
|
|
|
cp /usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.a ~/staticdeps
|
|
|
|
# install zlib
|
|
if [[ ! -f ~/staticdeps/include/zlib.h ]]; then
|
|
curl -L https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz -o /tmp/zlib.tar.gz
|
|
|
|
mkdir -p /tmp/dep_zlib-1.2.13 \
|
|
&& cd /tmp/dep_zlib-1.2.13 \
|
|
&& cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "zlib-1.2.13: configure..." && ./configure --static --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "zlib-1.2.13: make..." && make -s -j4 \
|
|
&& echo "zlib-1.2.13: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_zlib-1.2.13
|
|
fi
|
|
|
|
# install musl
|
|
if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then
|
|
curl -L https://musl.libc.org/releases/musl-1.2.2.tar.gz -o /tmp/musl.tar.gz
|
|
|
|
mkdir -p /tmp/dep_musl-1.2.2 \
|
|
&& cd /tmp/dep_musl-1.2.2 \
|
|
&& cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "musl-1.2.2: configure..." && ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "musl-1.2.2: make..." && make -s -j4 \
|
|
&& echo "musl-1.2.2: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_musl-1.2.2
|
|
|
|
# native-image expects to find an executable at this path.
|
|
ln -s ~/staticdeps/bin/musl-gcc ~/staticdeps/bin/x86_64-linux-musl-gcc
|
|
fi
|
|
name: Set up environment
|
|
shell: '#!/bin/bash -exo pipefail'
|
|
- save_cache:
|
|
paths:
|
|
- ~/staticdeps
|
|
key: staticdeps-amd64
|
|
name: Save statics deps to cache
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace -DreleaseBuild=true pkl-cli:alpineExecutableAmd64 pkl-core:testAlpineExecutableAmd64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
JAVA_HOME: /jdk
|
|
resource_class: xlarge
|
|
docker:
|
|
- image: oraclelinux:8-slim
|
|
pkl-cli-macOS-amd64-snapshot:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: /usr/sbin/softwareupdate --install-rosetta --agree-to-license
|
|
name: Installing Rosetta 2
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace pkl-cli:macExecutableAmd64 pkl-core:testMacExecutableAmd64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
resource_class: macos.m1.large.gen1
|
|
macos:
|
|
xcode: 15.2.0
|
|
pkl-cli-linux-amd64-snapshot:
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: staticdeps-amd64
|
|
name: Restore static deps from cache
|
|
- run:
|
|
command: |-
|
|
sed -ie '/\[ol8_codeready_builder\]/,/^$/s/enabled=0/enabled=1/g' /etc/yum.repos.d/oracle-linux-ol8.repo \
|
|
&& microdnf -y install util-linux tree coreutils-single findutils curl tar gzip git zlib-devel gcc-c++ make openssl glibc-langpack-en libstdc++-static \
|
|
&& microdnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
# install jdk
|
|
curl -L \
|
|
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.20.1_1.tar.gz -o /tmp/jdk.tar.gz
|
|
|
|
mkdir /jdk \
|
|
&& cd /jdk \
|
|
&& cat /tmp/jdk.tar.gz | tar --strip-components=1 -xzC .
|
|
|
|
mkdir -p ~/staticdeps/bin
|
|
|
|
cp /usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.a ~/staticdeps
|
|
|
|
# install zlib
|
|
if [[ ! -f ~/staticdeps/include/zlib.h ]]; then
|
|
curl -L https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz -o /tmp/zlib.tar.gz
|
|
|
|
mkdir -p /tmp/dep_zlib-1.2.13 \
|
|
&& cd /tmp/dep_zlib-1.2.13 \
|
|
&& cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "zlib-1.2.13: configure..." && ./configure --static --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "zlib-1.2.13: make..." && make -s -j4 \
|
|
&& echo "zlib-1.2.13: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_zlib-1.2.13
|
|
fi
|
|
|
|
# install musl
|
|
if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then
|
|
curl -L https://musl.libc.org/releases/musl-1.2.2.tar.gz -o /tmp/musl.tar.gz
|
|
|
|
mkdir -p /tmp/dep_musl-1.2.2 \
|
|
&& cd /tmp/dep_musl-1.2.2 \
|
|
&& cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "musl-1.2.2: configure..." && ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "musl-1.2.2: make..." && make -s -j4 \
|
|
&& echo "musl-1.2.2: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_musl-1.2.2
|
|
|
|
# native-image expects to find an executable at this path.
|
|
ln -s ~/staticdeps/bin/musl-gcc ~/staticdeps/bin/x86_64-linux-musl-gcc
|
|
fi
|
|
name: Set up environment
|
|
shell: '#!/bin/bash -exo pipefail'
|
|
- save_cache:
|
|
paths:
|
|
- ~/staticdeps
|
|
key: staticdeps-amd64
|
|
name: Save statics deps to cache
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace pkl-cli:linuxExecutableAmd64 pkl-core:testLinuxExecutableAmd64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
JAVA_HOME: /jdk
|
|
resource_class: xlarge
|
|
docker:
|
|
- image: oraclelinux:8-slim
|
|
pkl-cli-macOS-aarch64-snapshot:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: git apply patches/graalVm23.patch
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace pkl-cli:macExecutableAarch64 pkl-core:testMacExecutableAarch64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
resource_class: macos.m1.large.gen1
|
|
macos:
|
|
xcode: 15.2.0
|
|
pkl-cli-linux-aarch64-snapshot:
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: staticdeps-aarch64
|
|
name: Restore static deps from cache
|
|
- run:
|
|
command: |-
|
|
sed -ie '/\[ol8_codeready_builder\]/,/^$/s/enabled=0/enabled=1/g' /etc/yum.repos.d/oracle-linux-ol8.repo \
|
|
&& microdnf -y install util-linux tree coreutils-single findutils curl tar gzip git zlib-devel gcc-c++ make openssl glibc-langpack-en libstdc++-static \
|
|
&& microdnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
# install jdk
|
|
curl -L \
|
|
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.20.1_1.tar.gz -o /tmp/jdk.tar.gz
|
|
|
|
mkdir /jdk \
|
|
&& cd /jdk \
|
|
&& cat /tmp/jdk.tar.gz | tar --strip-components=1 -xzC .
|
|
|
|
mkdir -p ~/staticdeps/bin
|
|
|
|
cp /usr/lib/gcc/aarch64-redhat-linux/8/libstdc++.a ~/staticdeps
|
|
|
|
# install zlib
|
|
if [[ ! -f ~/staticdeps/include/zlib.h ]]; then
|
|
curl -L https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz -o /tmp/zlib.tar.gz
|
|
|
|
mkdir -p /tmp/dep_zlib-1.2.13 \
|
|
&& cd /tmp/dep_zlib-1.2.13 \
|
|
&& cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "zlib-1.2.13: configure..." && ./configure --static --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "zlib-1.2.13: make..." && make -s -j4 \
|
|
&& echo "zlib-1.2.13: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_zlib-1.2.13
|
|
fi
|
|
name: Set up environment
|
|
shell: '#!/bin/bash -exo pipefail'
|
|
- save_cache:
|
|
paths:
|
|
- ~/staticdeps
|
|
key: staticdeps-aarch64
|
|
name: Save statics deps to cache
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace pkl-cli:linuxExecutableAarch64 pkl-core:testLinuxExecutableAarch64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
JAVA_HOME: /jdk
|
|
resource_class: arm.xlarge
|
|
docker:
|
|
- image: arm64v8/oraclelinux:8-slim
|
|
pkl-cli-linux-alpine-amd64-snapshot:
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: staticdeps-amd64
|
|
name: Restore static deps from cache
|
|
- run:
|
|
command: |-
|
|
sed -ie '/\[ol8_codeready_builder\]/,/^$/s/enabled=0/enabled=1/g' /etc/yum.repos.d/oracle-linux-ol8.repo \
|
|
&& microdnf -y install util-linux tree coreutils-single findutils curl tar gzip git zlib-devel gcc-c++ make openssl glibc-langpack-en libstdc++-static \
|
|
&& microdnf clean all \
|
|
&& rm -rf /var/cache/dnf
|
|
|
|
# install jdk
|
|
curl -L \
|
|
https://github.com/adoptium/temurin11-binaries/releases/download/jdk-11.0.20.1%2B1/OpenJDK11U-jdk_x64_linux_hotspot_11.0.20.1_1.tar.gz -o /tmp/jdk.tar.gz
|
|
|
|
mkdir /jdk \
|
|
&& cd /jdk \
|
|
&& cat /tmp/jdk.tar.gz | tar --strip-components=1 -xzC .
|
|
|
|
mkdir -p ~/staticdeps/bin
|
|
|
|
cp /usr/lib/gcc/x86_64-redhat-linux/8/libstdc++.a ~/staticdeps
|
|
|
|
# install zlib
|
|
if [[ ! -f ~/staticdeps/include/zlib.h ]]; then
|
|
curl -L https://github.com/madler/zlib/releases/download/v1.2.13/zlib-1.2.13.tar.gz -o /tmp/zlib.tar.gz
|
|
|
|
mkdir -p /tmp/dep_zlib-1.2.13 \
|
|
&& cd /tmp/dep_zlib-1.2.13 \
|
|
&& cat /tmp/zlib.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "zlib-1.2.13: configure..." && ./configure --static --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "zlib-1.2.13: make..." && make -s -j4 \
|
|
&& echo "zlib-1.2.13: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_zlib-1.2.13
|
|
fi
|
|
|
|
# install musl
|
|
if [[ ! -f ~/staticdeps/bin/x86_64-linux-musl-gcc ]]; then
|
|
curl -L https://musl.libc.org/releases/musl-1.2.2.tar.gz -o /tmp/musl.tar.gz
|
|
|
|
mkdir -p /tmp/dep_musl-1.2.2 \
|
|
&& cd /tmp/dep_musl-1.2.2 \
|
|
&& cat /tmp/musl.tar.gz | tar --strip-components=1 -xzC . \
|
|
&& echo "musl-1.2.2: configure..." && ./configure --disable-shared --prefix="$HOME"/staticdeps > /dev/null \
|
|
&& echo "musl-1.2.2: make..." && make -s -j4 \
|
|
&& echo "musl-1.2.2: make install..." && make -s install \
|
|
&& rm -rf /tmp/dep_musl-1.2.2
|
|
|
|
# native-image expects to find an executable at this path.
|
|
ln -s ~/staticdeps/bin/musl-gcc ~/staticdeps/bin/x86_64-linux-musl-gcc
|
|
fi
|
|
name: Set up environment
|
|
shell: '#!/bin/bash -exo pipefail'
|
|
- save_cache:
|
|
paths:
|
|
- ~/staticdeps
|
|
key: staticdeps-amd64
|
|
name: Save statics deps to cache
|
|
- run:
|
|
command: |-
|
|
export PATH=~/staticdeps/bin:$PATH
|
|
./gradlew --info --stacktrace pkl-cli:alpineExecutableAmd64 pkl-core:testAlpineExecutableAmd64
|
|
name: gradle buildNative
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
JAVA_HOME: /jdk
|
|
resource_class: xlarge
|
|
docker:
|
|
- image: oraclelinux:8-slim
|
|
gradle-check-jdk11:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: ./gradlew --info --stacktrace check
|
|
name: gradle check
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
docker:
|
|
- image: cimg/openjdk:11.0
|
|
gradle-check-jdk17:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: ./gradlew --info --stacktrace check
|
|
name: gradle check
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
docker:
|
|
- image: cimg/openjdk:17.0
|
|
bench:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: ./gradlew --info --stacktrace bench:jmh
|
|
name: bench:jmh
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
docker:
|
|
- image: cimg/openjdk:11.0
|
|
gradle-compatibility:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: |-
|
|
./gradlew --info --stacktrace :pkl-gradle:build \
|
|
:pkl-gradle:compatibilityTestReleases \
|
|
:pkl-gradle:compatibilityTestCandidate
|
|
name: gradle compatibility
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
docker:
|
|
- image: cimg/openjdk:11.0
|
|
deploy-snapshot:
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: '.'
|
|
- run:
|
|
command: ./gradlew --info --stacktrace publishToSonatype
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
docker:
|
|
- image: cimg/openjdk:11.0
|
|
deploy-release:
|
|
steps:
|
|
- checkout
|
|
- attach_workspace:
|
|
at: '.'
|
|
- run:
|
|
command: ./gradlew --info --stacktrace -DreleaseBuild=true publishToSonatype closeAndReleaseSonatypeStagingRepository
|
|
- persist_to_workspace:
|
|
root: '.'
|
|
paths:
|
|
- pkl-cli/build/executable/
|
|
- run:
|
|
command: |-
|
|
mkdir ~/test-results/
|
|
find . -type f -regex ".*/build/test-results/.*xml" -exec cp {} ~/test-results/ \;
|
|
name: Gather test results
|
|
when: always
|
|
- store_test_results:
|
|
path: ~/test-results
|
|
environment:
|
|
LANG: en_US.UTF-8
|
|
docker:
|
|
- image: cimg/openjdk:11.0
|
|
github-release:
|
|
steps:
|
|
- attach_workspace:
|
|
at: '.'
|
|
- run:
|
|
command: |-
|
|
# exclude build_artifacts.txt from publish
|
|
rm pkl-cli/build/executable/*.build_artifacts.txt
|
|
gh release create "${CIRCLE_TAG}" \
|
|
--title "${CIRCLE_TAG}" \
|
|
--target "${CIRCLE_SHA1}" \
|
|
--verify-tag \
|
|
--notes "Release notes: https://pkl-lang.org/main/current/release-notes/changelog.html#release-${CIRCLE_TAG}" \
|
|
--repo "${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}" \
|
|
pkl-cli/build/executable/*
|
|
name: Publish release on GitHub
|
|
docker:
|
|
- image: maniator/gh:v2.40.1
|
|
check-patch-file:
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
command: git apply --reject patches/graalVm23.patch
|
|
resource_class: small
|
|
docker:
|
|
- image: cimg/base:current
|
|
trigger-docsite-build:
|
|
steps:
|
|
- run:
|
|
command: |-
|
|
curl --location \
|
|
--request POST \
|
|
--header "Content-Type: application/json" \
|
|
-u "${CIRCLE_TOKEN}:" \
|
|
--data '{ "branch": "main" }' \
|
|
"https://circleci.com/api/v2/project/github/apple/pkl-lang.org/pipeline"
|
|
name: Triggering docsite build
|
|
docker:
|
|
- image: cimg/base:current
|
|
trigger-package-docs-build:
|
|
steps:
|
|
- run:
|
|
command: |-
|
|
curl --location \
|
|
--request POST \
|
|
--header "Content-Type: application/json" \
|
|
-u "${CIRCLE_TOKEN}:" \
|
|
--data '{ "branch": "main" }' \
|
|
"https://circleci.com/api/v2/project/github/apple/pkl-package-docs/pipeline"
|
|
name: Triggering docsite build
|
|
docker:
|
|
- image: cimg/base:current
|
|
workflows:
|
|
prb:
|
|
jobs:
|
|
- hold:
|
|
type: approval
|
|
- pr-approval/authenticate:
|
|
context: pkl-pr-approval
|
|
- gradle-check-jdk11:
|
|
requires:
|
|
- hold
|
|
- gradle-check-jdk17:
|
|
requires:
|
|
- hold
|
|
- check-patch-file:
|
|
requires:
|
|
- hold
|
|
when:
|
|
matches:
|
|
value: << pipeline.git.branch >>
|
|
pattern: ^pull/\d+(/head)?$
|
|
main:
|
|
jobs:
|
|
- gradle-check-jdk11
|
|
- gradle-check-jdk17
|
|
- check-patch-file
|
|
- bench
|
|
- pkl-cli-macOS-amd64-snapshot
|
|
- pkl-cli-linux-amd64-snapshot
|
|
- pkl-cli-macOS-aarch64-snapshot
|
|
- pkl-cli-linux-aarch64-snapshot
|
|
- pkl-cli-linux-alpine-amd64-snapshot
|
|
- deploy-snapshot:
|
|
requires:
|
|
- gradle-check-jdk11
|
|
- gradle-check-jdk17
|
|
- check-patch-file
|
|
- bench
|
|
- pkl-cli-macOS-amd64-snapshot
|
|
- pkl-cli-linux-amd64-snapshot
|
|
- pkl-cli-macOS-aarch64-snapshot
|
|
- pkl-cli-linux-aarch64-snapshot
|
|
- pkl-cli-linux-alpine-amd64-snapshot
|
|
context: pkl-maven-release
|
|
- trigger-docsite-build:
|
|
requires:
|
|
- deploy-snapshot
|
|
context:
|
|
- pkl-pr-approval
|
|
when:
|
|
equal:
|
|
- main
|
|
- << pipeline.git.branch >>
|
|
release:
|
|
jobs:
|
|
- gradle-check-jdk11:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- gradle-check-jdk17:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- check-patch-file:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- bench:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- pkl-cli-macOS-amd64-release:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- pkl-cli-linux-amd64-release:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- pkl-cli-macOS-aarch64-release:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- pkl-cli-linux-aarch64-release:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- pkl-cli-linux-alpine-amd64-release:
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- github-release:
|
|
requires:
|
|
- gradle-check-jdk11
|
|
- gradle-check-jdk17
|
|
- check-patch-file
|
|
- bench
|
|
- pkl-cli-macOS-amd64-release
|
|
- pkl-cli-linux-amd64-release
|
|
- pkl-cli-macOS-aarch64-release
|
|
- pkl-cli-linux-aarch64-release
|
|
- pkl-cli-linux-alpine-amd64-release
|
|
context: pkl-github-release
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- deploy-release:
|
|
requires:
|
|
- github-release
|
|
context: pkl-maven-release
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
- trigger-package-docs-build:
|
|
requires:
|
|
- deploy-release
|
|
context:
|
|
- pkl-pr-approval
|
|
filters:
|
|
branches:
|
|
ignore: /.*/
|
|
tags:
|
|
only: /^v?\d+\.\d+\.\d+$/
|
|
release-branch:
|
|
jobs:
|
|
- gradle-check-jdk11
|
|
- gradle-check-jdk17
|
|
- check-patch-file
|
|
- bench
|
|
- pkl-cli-macOS-amd64-release
|
|
- pkl-cli-linux-amd64-release
|
|
- pkl-cli-macOS-aarch64-release
|
|
- pkl-cli-linux-aarch64-release
|
|
- pkl-cli-linux-alpine-amd64-release
|
|
when:
|
|
matches:
|
|
value: << pipeline.git.branch >>
|
|
pattern: ^release/\d+\.\d+$
|