Skip to content

Commit 9939a8f

Browse files
committed
ci: build test containers
1 parent c24394f commit 9939a8f

File tree

4 files changed

+50
-49
lines changed

4 files changed

+50
-49
lines changed

.github/workflows/asan.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ on:
77
pull_request:
88
workflow_dispatch:
99

10+
env:
11+
JAVA_VERSION: 21
12+
NODE_VERSION: 24
13+
1014
concurrency:
1115
group: ${{ github.workflow }}-${{ github.ref == 'refs/heads/main' && github.run_id || github.event.pull_request.number || github.ref }}
1216
cancel-in-progress: true
@@ -35,14 +39,14 @@ jobs:
3539
- name: Setup node
3640
uses: actions/setup-node@v6
3741
with:
38-
node-version: 20
42+
node-version: ${{env.NODE_VERSION}}
3943
check-latest: true
4044
cache: 'npm'
41-
- name: Setup java 17
45+
- name: Setup java
4246
uses: actions/setup-java@v5
4347
with:
4448
distribution: 'temurin'
45-
java-version: '17'
49+
java-version: ${{env.JAVA_VERSION}}
4650

4751
- name: Rust Cache
4852
uses: Swatinem/rust-cache@v2.7.3

.github/workflows/test-container.yml

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,32 +14,19 @@ on:
1414

1515
env:
1616
REGISTRY: ghcr.io
17-
IMAGE_NAME: java-bridge-asan-testcontainer
17+
IMAGE_NAME: ghcr.io/markusjx/node-java-bridge/java-bridge-asan-testcontainer:latest
1818

1919
jobs:
2020
build:
2121
runs-on: ubuntu-latest
2222

2323
steps:
24-
- uses: actions/checkout@v4
25-
- name: Create dockerfile
26-
uses: edgardleal/mustache-template-action@v1.0.4
27-
env:
28-
DEBIAN_VERSION: ${{github.event.inputs.debian-version}}
29-
JDK_VERSION: ${{github.event.inputs.jdk-version}}
30-
NODE_VERSION: ${{github.event.inputs.node-version}}
31-
with:
32-
input: ./docker/Dockerfile.asan
33-
output: Dockerfile
34-
35-
- name: Build image
36-
run: docker build . --file Dockerfile --tag $IMAGE_NAME
37-
38-
- name: Log into registry
24+
- uses: actions/checkout@v6
25+
- name: Docker login
3926
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login $REGISTRY -u ${{ github.actor }} --password-stdin
40-
- name: Push latest image
27+
- name: Build image
4128
run: |
42-
IMAGE_ID=$REGISTRY/${{ github.repository }}
43-
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')/$IMAGE_NAME
44-
docker tag $IMAGE_NAME $IMAGE_ID:latest
45-
docker push $IMAGE_ID:latest
29+
docker build --push -f docker/Dockerfile.asan -t $IMAGE_NAME\
30+
--build-arg JDK_VERSION=${{github.event.inputs.jdk-version}} \
31+
--build-arg NODE_VERSION=${{github.event.inputs.node-version}} \
32+
--build-arg DEBIAN_VERSION=${{github.event.inputs.debian-version}} .

.github/workflows/test.yml

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ jobs:
8888
architecture: ${{matrix.arch}}
8989
- name: Setup java 17
9090
uses: actions/setup-java@v5
91+
if: ${{matrix.os == 'windows-latest'}}
92+
with:
93+
distribution: 'temurin'
94+
java-version: '17'
95+
architecture: ${{matrix.arch}}
96+
- name: Setup java
97+
uses: actions/setup-java@v5
98+
if: ${{matrix.os != 'windows-latest'}}
9199
with:
92100
distribution: 'temurin'
93101
java-version: ${{env.JAVA_VERSION}}
@@ -173,18 +181,19 @@ jobs:
173181
run: npm install
174182
- name: Init qemu
175183
run: docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
184+
- name: Docker login
185+
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login $REGISTRY -u ${{ github.actor }} --password-stdin
176186
- name: Build test container
177187
run: |
178-
docker login ghcr.io -u ${{github.actor}} -p ${{secrets.GITHUB_TOKEN}}
179-
if docker manifest inspect ghcr.io/markusjx/node-java-bridge/test-arm:${{matrix.node-version}}-$JAVA_VERSION-$DEBIAN_VERSION;
180-
then
181-
echo "Docker container already exists"
182-
else
183-
docker build --push --platform linux/arm64 --build-arg NODE_VERSION=${{matrix.node-version}} \
184-
--build-arg DEBIAN_VERSION=$DEBIAN_VERSION \
185-
--build-arg JAVA_VERSION=$JAVA_VERSION -f docker/Dockerfile.arm \
186-
-t ghcr.io/markusjx/node-java-bridge/test-arm:${{matrix.node-version}}-$JAVA_VERSION-$DEBIAN_VERSION .
187-
fi
188+
if docker manifest inspect ghcr.io/markusjx/node-java-bridge/test-arm:${{matrix.node-version}}-$JAVA_VERSION-$DEBIAN_VERSION;
189+
then
190+
echo "Docker container already exists"
191+
else
192+
docker build --push --platform linux/arm64 --build-arg NODE_VERSION=${{matrix.node-version}} \
193+
--build-arg DEBIAN_VERSION=$DEBIAN_VERSION \
194+
--build-arg JAVA_VERSION=$JAVA_VERSION -f docker/Dockerfile.arm \
195+
-t ghcr.io/markusjx/node-java-bridge/test-arm:${{matrix.node-version}}-$JAVA_VERSION-$DEBIAN_VERSION .
196+
fi
188197
- name: Run tests
189198
uses: addnab/docker-run-action@v3
190199
timeout-minutes: 180
@@ -222,17 +231,18 @@ jobs:
222231
- uses: actions/checkout@v6
223232
- name: Rust Cache
224233
uses: Swatinem/rust-cache@v2.7.3
234+
- name: Docker login
235+
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login $REGISTRY -u ${{ github.actor }} --password-stdin
225236
- name: Build test container
226237
run: |
227-
docker login ghcr.io -u ${{github.actor}} -p ${{secrets.GITHUB_TOKEN}}
228-
if docker manifest inspect ghcr.io/markusjx/node-java-bridge/test-alpine:${{matrix.node-version}}-$JAVA_VERSION;
229-
then
230-
echo "Docker container already exists"
231-
else
232-
docker build --push --build-arg NODE_VERSION=${{matrix.node-version}} \
233-
--build-arg JAVA_VERSION=$JAVA_VERSION -f docker/Dockerfile.alpine \
234-
-t ghcr.io/markusjx/node-java-bridge/test-alpine:${{matrix.node-version}}-$JAVA_VERSION .
235-
fi
238+
if docker manifest inspect ghcr.io/markusjx/node-java-bridge/test-alpine:${{matrix.node-version}}-$JAVA_VERSION;
239+
then
240+
echo "Docker container already exists"
241+
else
242+
docker build --push --build-arg NODE_VERSION=${{matrix.node-version}} \
243+
--build-arg JAVA_VERSION=$JAVA_VERSION -f docker/Dockerfile.alpine \
244+
-t ghcr.io/markusjx/node-java-bridge/test-alpine:${{matrix.node-version}}-$JAVA_VERSION .
245+
fi
236246
- name: Run tests
237247
uses: addnab/docker-run-action@v3
238248
timeout-minutes: 180

docker/Dockerfile.asan

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
ARG JDK_VERSION
2-
ARG NODE_VERSION
3-
ARG DEBIAN_VERSION
1+
ARG JDK_VERSION="21"
2+
ARG NODE_VERSION="22"
3+
ARG DEBIAN_VERSION="trixie"
44

5-
FROM ghcr.io/markusjx/prebuilt-debug-jdk:{{JDK_VERSION}} as jdk
6-
FROM ghcr.io/markusjx/prebuilt-debug-nodejs:{{NODE_VERSION}} as node
7-
FROM debian:{{DEBIAN_VERSION}}-slim
5+
FROM ghcr.io/markusjx/prebuilt-debug-jdk:${JDK_VERSION} as jdk
6+
FROM ghcr.io/markusjx/prebuilt-debug-nodejs:${NODE_VERSION} as node
7+
FROM debian:${DEBIAN_VERSION}-slim
88

99
RUN apt-get update && apt-get install -y --no-install-recommends \
1010
libclang-dev clang libatomic1 llvm && apt-get install -y curl && \

0 commit comments

Comments
 (0)