Merge pull request 'Forgejo runner support' (#1) from nm17/docker-openj9-piped:main into main
Some checks failed
Some checks failed
Reviewed-on: #1
This commit is contained in:
commit
13bb1ac9e8
2 changed files with 125 additions and 10 deletions
72
.forgejo/workflows/build_and_release.yml
Normal file
72
.forgejo/workflows/build_and_release.yml
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
name: Docker Image CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
env:
|
||||||
|
REGISTRY: git.dc09.ru # Change to your registry (e.g., forgejo.example.com)
|
||||||
|
GITHUB_TOKEN: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
GITHUB_API_URL: https://git.dc09.ru
|
||||||
|
GITHUB_BASE_REF: git.dc09.ru
|
||||||
|
GITHUB_SERVER_URL: https://git.dc09.ru
|
||||||
|
DOCKERHUB_TOKEN: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
DOCKER_TOKEN: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
FORGEJO_URL: https://git.dc09.ru
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-and-push:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
images:
|
||||||
|
- dockerfile: 'Dockerfile.openj9'
|
||||||
|
image_name: 'openj9'
|
||||||
|
context: './'
|
||||||
|
build-args: ["WITH_JDK=false"]
|
||||||
|
- dockerfile: 'Dockerfile.piped'
|
||||||
|
image_name: 'piped'
|
||||||
|
context: './'
|
||||||
|
build-args: []
|
||||||
|
# Add more images as needed
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Log in to the Container registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: git.dc09.ru
|
||||||
|
username: ${{ secrets.FORGEJO_USERNAME }}
|
||||||
|
password: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
token: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
opts.auth: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
- name: Printenv
|
||||||
|
run: env | sort
|
||||||
|
- name: Extract metadata (tags, labels)
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@v5
|
||||||
|
with:
|
||||||
|
context: git
|
||||||
|
images: |
|
||||||
|
git.dc09.ru/${{ env.GITHUB_REPOSITORY_OWNER }}/${{ matrix.images.image_name }}
|
||||||
|
tags: |
|
||||||
|
type=ref,event=branch
|
||||||
|
type=ref,event=pr
|
||||||
|
type=semver,pattern={{version}}
|
||||||
|
type=semver,pattern={{major}}.{{minor}}
|
||||||
|
github-token: ${{ secrets.FORGEJO_PASSWORD }}
|
||||||
|
github-server: https://git.dc09.ru
|
||||||
|
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
context: ${{ matrix.images.context }}
|
||||||
|
file: ${{ matrix.images.dockerfile }}
|
||||||
|
push: ${{ github.event_name == 'push' }}
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
|
build-args: ${{ matrix.images.build-args }}
|
|
@ -1,14 +1,14 @@
|
||||||
FROM ubuntu:24.10 AS build
|
FROM ubuntu:25.04 AS build
|
||||||
|
|
||||||
# partly copied from mkdocker.sh
|
# partly copied from mkdocker.sh
|
||||||
# Copyright IBM Corp (Eclipse Public License 2.0)
|
# Copyright IBM Corp (Eclipse Public License 2.0)
|
||||||
RUN apt update \
|
RUN apt -qq update \
|
||||||
&& apt upgrade -y \
|
&& apt -qq upgrade -y \
|
||||||
&& apt install -qq -y --no-install-recommends \
|
&& apt -qq install -y --no-install-recommends \
|
||||||
ant ant-contrib autoconf build-essential ca-certificates cmake cpio curl file g++-13 gcc-13 gdb git \
|
ant ant-contrib autoconf build-essential ca-certificates cmake cpio curl file gcc-14 g++-14 gdb git \
|
||||||
libasound2-dev libcups2-dev libdwarf-dev libelf-dev libexpat1-dev libffi-dev libfontconfig libfontconfig1-dev \
|
libasound2-dev libcups2-dev libdwarf-dev libelf-dev libexpat1-dev libffi-dev libfontconfig libfontconfig1-dev \
|
||||||
libfreetype6-dev libnuma-dev libssl-dev libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev libxtst-dev \
|
libfreetype6-dev libnuma-dev libssl-dev libx11-dev libxext-dev libxrandr-dev libxrender-dev libxt-dev libxtst-dev \
|
||||||
make nasm pkg-config python3 python3-dev rsync systemtap-sdt-dev unzip wget xvfb zip zlib1g-dev \
|
make nasm pkg-config python3 python3-dev rsync systemtap-sdt-dev unzip wget xvfb zip zlib1g-dev execstack unzip \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
WORKDIR /build
|
WORKDIR /build
|
||||||
|
@ -18,14 +18,28 @@ RUN mkdir /build/bootjdk /build/dist \
|
||||||
&& tar -xzf jdk21.tar.gz --directory=/build/bootjdk --strip-components=1 \
|
&& tar -xzf jdk21.tar.gz --directory=/build/bootjdk --strip-components=1 \
|
||||||
&& rm -f jdk21.tar.gz
|
&& rm -f jdk21.tar.gz
|
||||||
|
|
||||||
|
RUN wget --progress=dot:mega -O jtreg.zip https://builds.shipilev.net/jtreg/jtreg-7.5.1%2B1.zip \
|
||||||
|
&& unzip jtreg.zip -d /build \
|
||||||
|
&& rm -rf jtreg.zip
|
||||||
|
|
||||||
|
ENV JT_HOME=/build/jtreg
|
||||||
|
|
||||||
|
RUN find /build/bootjdk -name '*.so' | xargs execstack -c
|
||||||
|
|
||||||
RUN git clone --single-branch --depth 1 \
|
RUN git clone --single-branch --depth 1 \
|
||||||
https://github.com/ibmruntimes/openj9-openjdk-jdk21.git \
|
https://github.com/ibmruntimes/openj9-openjdk-jdk21.git \
|
||||||
/build/src
|
/build/src
|
||||||
|
|
||||||
WORKDIR /build/src
|
WORKDIR /build/src
|
||||||
RUN bash get_source.sh
|
RUN bash get_source.sh
|
||||||
RUN bash configure --with-boot-jdk=/build/bootjdk --with-mixedrefs=static --with-openssl=system
|
|
||||||
RUN make all
|
RUN bash configure \
|
||||||
|
--enable-libffi-bundling --enable-ddr --enable-jitserver \
|
||||||
|
--enable-fallback-linker --with-jtreg=/build/jtreg --with-boot-jdk=/build/bootjdk \
|
||||||
|
--with-openssl=system --with-extra-ldflags="-Wl,-z,noexecstack"
|
||||||
|
|
||||||
|
RUN make all JOBS=$(nproc)
|
||||||
|
RUN make install
|
||||||
|
|
||||||
# jlink by advice from https://adoptium.net/blog/2021/10/jlink-to-produce-own-runtime/
|
# jlink by advice from https://adoptium.net/blog/2021/10/jlink-to-produce-own-runtime/
|
||||||
WORKDIR /build/src/build/linux-x86_64-server-release/images
|
WORKDIR /build/src/build/linux-x86_64-server-release/images
|
||||||
|
@ -40,15 +54,44 @@ jdk.nio.mapmode,jdk.random,jdk.sctp,jdk.security.auth,jdk.security.jgss,jdk.unsu
|
||||||
jdk.xml.dom,jdk.zipfs,openj9.criu,openj9.cuda,openj9.dataaccess,openj9.gpu,openj9.jvm,\
|
jdk.xml.dom,jdk.zipfs,openj9.criu,openj9.cuda,openj9.dataaccess,openj9.gpu,openj9.jvm,\
|
||||||
openj9.sharedclasses,openj9.zosconditionhandling
|
openj9.sharedclasses,openj9.zosconditionhandling
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ENV JAVA_HOME=/build/src/build/linux-x86_64-server-release/images/jre
|
||||||
|
ENV PATH="$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH"
|
||||||
|
ENV TEST_JDK_HOME=/build/src/build/linux-x86_64-server-release/images/jdk
|
||||||
|
ENV TEST_ROOT=/build/src/openj9/test
|
||||||
|
ENV DIAGNOSTICLEVEL=nodetails
|
||||||
|
ENV NATIVE_TEST_LIBS=/build/src/build/linux-x86_64-server-release/images/test
|
||||||
|
|
||||||
|
RUN cd /build/src/openj9/test \
|
||||||
|
&& git clone https://github.com/adoptium/TKG.git
|
||||||
|
|
||||||
|
WORKDIR /build/src/openj9/test/TKG
|
||||||
|
|
||||||
|
ENV BUILD_LIST=functional
|
||||||
|
|
||||||
|
RUN find ../ -type f -name "playlist.xml" | xargs sed -i 's#<testCaseName>jit_jar</testCaseName>#<testCaseName>jit_jar</testCaseName><disables><disable><comment>https://github.com/</comment></disable></disables>#g'
|
||||||
|
RUN find ../ -type f -name "playlist.xml" | xargs sed -i 's#<testCaseName>testJITServer</testCaseName>#<testCaseName>testJITServer</testCaseName><disables><disable><comment>https://github.com/</comment></disable></disables>#g'
|
||||||
|
|
||||||
|
RUN make compile -j$(nproc)
|
||||||
|
|
||||||
|
RUN make genParallelList PARALLEL_OPTIONS=TEST=_sanity.functional.regular TEST_TIME= NUM_MACHINES=$(nproc)
|
||||||
|
|
||||||
|
RUN cat parallelList.mk
|
||||||
|
|
||||||
|
RUN make -f parallelList.mk JOBS=$(nproc)
|
||||||
|
|
||||||
|
WORKDIR /build/src/build/linux-x86_64-server-release/images
|
||||||
RUN mv ./* /build/dist/
|
RUN mv ./* /build/dist/
|
||||||
|
|
||||||
|
|
||||||
# ------
|
# ------
|
||||||
|
|
||||||
FROM ubuntu:24.10 AS run
|
FROM ubuntu:25.04 AS run
|
||||||
|
|
||||||
COPY --from=build /build/dist/jre /usr/lib/jvm/openj9-jre
|
COPY --from=build /build/dist/jre /usr/lib/jvm/openj9-jre
|
||||||
ENV JAVA_HOME=/usr/lib/jvm/openj9-jre
|
ENV JAVA_HOME=/usr/lib/jvm/openj9-jre
|
||||||
ENV PATH="$JAVA_HOME/bin:$PATH"
|
ENV PATH="$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH"
|
||||||
|
|
||||||
# verify installation
|
# verify installation
|
||||||
RUN java --version
|
RUN java --version
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue