-
-
Notifications
You must be signed in to change notification settings - Fork 80
152 lines (134 loc) · 5.66 KB
/
linux_build_node_v8_image.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
name: Linux Build (1/2) Base Images
on:
workflow_dispatch:
inputs:
skip_base_jvm:
default: false
type: boolean
skip_base_v8:
default: false
type: boolean
skip_base_node:
default: false
type: boolean
push:
paths:
- '.github/workflows/**'
- 'docker/**'
- 'scripts/python/**'
- 'scripts/shell/**'
env:
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
DOCKERHUB_REPO_JAVET: ${{ secrets.DOCKERHUB_REPO_JAVET }}
JAVET_NODE_VERSION: 22.12.0
JAVET_V8_VERSION: 13.2.152.16
JAVET_VERSION: 4.1.1
# if we skip a job using a job level `if` condition, then any dependent jobs also don't run.
# we can skip a step of the job, using a step level `if` condition.
# however GitHub doesn't support skipping all subsequent steps of a job.
# we need to add the condition to every step.
jobs:
publish_jvm_base_image:
name: Publish Ubuntu, Build Tools and JDK 8 Base Image
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
if: inputs.skip_base_jvm == false
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Checkout the code
if: inputs.skip_base_jvm == false
uses: actions/checkout@v4
- name: Build Ubuntu, Build Tools and JDK 8 Base Image
if: inputs.skip_base_jvm == false
run: |
export BASE_JVM_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-base-jvm
docker build \
-t ${BASE_JVM_IMAGE_TAG} \
-f docker/linux-x86_64/base_jvm.Dockerfile .
- name: Publish Ubuntu, Build Tools and JDK 8 Base Image
if: inputs.skip_base_jvm == false
run: |
export BASE_JVM_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-base-jvm
docker push ${BASE_JVM_IMAGE_TAG}
publish_node_base_image:
needs: [publish_jvm_base_image]
name: Publish Node.js Base Image
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
if: inputs.skip_base_node == false
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Checkout the code
if: inputs.skip_base_node == false
uses: actions/checkout@v4
- name: Build Node.js Base Image
if: inputs.skip_base_node == false
run: |
export BASE_NODE_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-base-node_${{ env.JAVET_NODE_VERSION }}
docker build \
-t ${BASE_NODE_IMAGE_TAG} \
--build-arg JAVET_REPO=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }} \
--build-arg JAVET_NODE_VERSION=${{ env.JAVET_NODE_VERSION }} \
-f docker/linux-x86_64/base_node.Dockerfile .
- name: Publish Node.js Base Image
if: inputs.skip_base_node == false
run: |
export BASE_NODE_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-base-node_${{ env.JAVET_NODE_VERSION }}
docker push ${BASE_NODE_IMAGE_TAG}
publish_v8_base_image:
needs: [publish_jvm_base_image]
name: Publish V8 Base Image
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
if: inputs.skip_base_v8 == false
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Checkout the code
if: inputs.skip_base_v8 == false
uses: actions/checkout@v4
- name: Build V8 Base Image
if: inputs.skip_base_v8 == false
run: |
export BASE_V8_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-base-v8_${{ env.JAVET_V8_VERSION }}
docker build \
-t ${BASE_V8_IMAGE_TAG} \
--build-arg JAVET_REPO=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }} \
--build-arg JAVET_V8_VERSION=${{ env.JAVET_V8_VERSION }} \
-f docker/linux-x86_64/base_v8.Dockerfile .
- name: Publish V8 Base Image
if: inputs.skip_base_v8 == false
run: |
export BASE_V8_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-base-v8_${{ env.JAVET_V8_VERSION }}
docker push ${BASE_V8_IMAGE_TAG}
publish_gradle_base_image:
needs: [publish_jvm_base_image]
name: Publish Gradle Base Image
runs-on: ubuntu-latest
steps:
- name: Login to Docker Hub
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
- name: Checkout the code
uses: actions/checkout@v4
- name: Build Gradle Base Image
run: |
export BASE_GRADLE_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-${{ env.JAVET_VERSION }}
docker build \
-t ${BASE_GRADLE_IMAGE_TAG} \
--build-arg JAVET_REPO=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }} \
-f docker/linux-x86_64/base_gradle.Dockerfile .
- name: Publish Gradle Base Image
run: |
export BASE_GRADLE_IMAGE_TAG=${{ env.DOCKERHUB_USERNAME }}/${{ env.DOCKERHUB_REPO_JAVET }}:x86_64-${{ env.JAVET_VERSION }}
docker push ${BASE_GRADLE_IMAGE_TAG}