forked from StepicOrg/epicbox-images
-
Notifications
You must be signed in to change notification settings - Fork 1
165 lines (160 loc) · 5.1 KB
/
ci.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
153
154
155
156
157
158
159
160
161
162
163
164
165
name: CI
on:
push:
branches:
- 'main'
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.ref_name }}
cancel-in-progress: true
jobs:
build_debian_image:
name: Build epicbox/debian image
runs-on: [ self-hosted, small ]
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build
uses: ./.github/workflows/actions/build
with:
path: epicbox-debian
image_name: debian
image_tag: bullseye
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
add_hash: false
build_debian_images:
name: Build ${{ matrix.path }} image
needs: build_debian_image
runs-on: [ self-hosted, small ]
strategy:
fail-fast: false
matrix:
include:
- path: epicbox-gcc
image_name: gcc
image_tag: 10.2.1-1
- path: epicbox-hyperskill/gcc
image_name: hyperskill-gcc
image_tag: 10.2.1-1
- path: epicbox-mono
image_name: mono
image_tag: 6.10.0.104
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build
uses: ./.github/workflows/actions/build
with:
path: ${{ matrix.path }}
image_name: ${{ matrix.image_name }}
image_tag: ${{ matrix.image_tag }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
build_images:
name: Build ${{ matrix.path }} image
runs-on: [ self-hosted, small ]
strategy:
fail-fast: false
matrix:
include:
- path: epicbox-clojure
image_name: clojure
image_tag: tools-deps-1.11.1.1413-alpine
- path: epicbox-go
image_name: go
image_tag: 1.21-bullseye
- path: epicbox-haskell
image_name: haskell
image_tag: 8.8.4
- path: epicbox-hyperskill/go
image_name: hyperskill-go
image_tag: 1.21-bullseye
- path: epicbox-hyperskill/gradle
image_name: hyperskill-gradle
image_tag: 8.5.0-jdk17
- path: epicbox-hyperskill/gradle-spring
image_name: hyperskill-gradle-spring
image_tag: 8.5.0-jdk17
- path: epicbox-hyperskill/java
image_name: hyperskill-java
image_tag: 17-jdk-slim
- path: epicbox-hyperskill/node
image_name: hyperskill-node
image_tag: 18.20.4-bullseye-slim
- path: epicbox-hyperskill/node-javascript
image_name: hyperskill-node-javascript
image_tag: 18.20.4-bullseye-slim
- path: epicbox-hyperskill/python
image_name: hyperskill-python
image_tag: 3.10-slim
- path: epicbox-java
image_name: java
image_tag: 23-slim
- path: epicbox-kotlin
image_name: kotlin
image_tag: 2.0.0-jdk-23-slim
- path: epicbox-node
image_name: node
image_tag: 18.20.4-alpine
- path: epicbox-php
image_name: php
image_tag: 7.2.11-cli-alpine3.7
- path: epicbox-pmd
image_name: pmd
image_tag: 6.9.0-8u181-alpine
- path: epicbox-python/310
image_name: python
image_tag: 3.10.6-slim
- path: epicbox-python/311
image_name: python
image_tag: 3.11.5-slim
- path: epicbox-python/312
image_name: python
image_tag: 3.12.7-slim
- path: epicbox-ruby
image_name: ruby
image_tag: 2.5.3-alpine
- path: epicbox-scala/2
image_name: scala
image_tag: 2.13.12-8u342-slim
- path: epicbox-scala/3
image_name: scala
image_tag: 3.0.0-11.0.11-slim
- path: epicbox-typescript
image_name: typescript
image_tag: 4.8.4-18.20.4-bullseye-slim
- path: epicbox-hyperstyle
image_name: hyperstyle
image_tag: ij-2024.9
timeout-minutes: 15
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Build
uses: ./.github/workflows/actions/build
with:
path: ${{ matrix.path }}
image_name: ${{ matrix.image_name }}
image_tag: ${{ matrix.image_tag }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
clean_untagged_images:
name: Clean untagged images
needs:
- build_debian_image
- build_debian_images
- build_images
runs-on: [ self-hosted, small ]
timeout-minutes: 30
steps:
- uses: hyperskill/[email protected]
with:
client_id: ${{ secrets.CLIENT_ID }}
client_secret: ${{ secrets.CLIENT_SECRET }}
subscription_id: ${{ secrets.SUBSCRIPTION_ID }}
tenant_id: ${{ secrets.TENANT_ID }}
repository_filter: epicbox/.*
registry: hyperskill