Skip to content

Commit 9767c2f

Browse files
committed
Build io_uring packages and containers
ysbaddaden io uring feature branch
1 parent 661f6bd commit 9767c2f

File tree

1 file changed

+204
-0
lines changed

1 file changed

+204
-0
lines changed

.github/workflows/io-uring.yml

Lines changed: 204 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,204 @@
1+
name: io_uring
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
crystal_version: feature-io-uring
8+
crystal_src_url: https://github.com/ysbaddaden/crystal/archive/refs/heads/feature/io-uring.tar.gz
9+
shards_version: 0.20.0
10+
gc_version: 8.2.10
11+
12+
permissions:
13+
contents: read
14+
id-token: write
15+
16+
jobs:
17+
alpine:
18+
name: Alpine container
19+
runs-on: ubuntu-latest
20+
strategy:
21+
matrix:
22+
include:
23+
- alpine_version: latest
24+
llvm_version: 16
25+
steps:
26+
- name: Checkout
27+
uses: actions/checkout@v4
28+
- name: Login to DockerHub
29+
uses: docker/login-action@v2
30+
with:
31+
username: ${{ secrets.DOCKERHUB_USERNAME }}
32+
password: ${{ secrets.DOCKERHUB_TOKEN }}
33+
if: ${{ github.ref == 'refs/heads/main' }}
34+
- uses: depot/setup-action@v1
35+
- uses: depot/build-push-action@v1
36+
with:
37+
project: zjh7v82xv6
38+
context: alpine
39+
no-cache: true
40+
pull: true
41+
push: true
42+
platforms: linux/amd64,linux/arm64
43+
build-args: |
44+
crystal_version=${{ env.crystal_version }}
45+
crystal_src_url=${{ env.crystal_src_url }}
46+
shards_version=${{ env.shards_version }}
47+
gc_version=${{ env.gc_version }}
48+
llvm_version=${{ matrix.llvm_version }}
49+
alpine_version=${{ matrix.alpine_version }}
50+
tags: |
51+
84codes/crystal:${{ env.crystal_version }}-alpine-${{ matrix.alpine_version }}
52+
84codes/crystal:${{ env.crystal_version }}-alpine
53+
54+
pkgs:
55+
name: Debian/RPM static packages
56+
needs: alpine
57+
runs-on: ubuntu-latest
58+
steps:
59+
- uses: actions/checkout@v4
60+
- uses: depot/setup-action@v1
61+
- uses: depot/build-push-action@v1
62+
with:
63+
project: zjh7v82xv6
64+
context: pkgs
65+
no-cache: true
66+
platforms: linux/amd64,linux/arm64
67+
build-args: |
68+
crystal_version=${{ env.crystal_version }}
69+
crystal_src_url=${{ env.crystal_src_url }}
70+
pkg_revision=${{ github.run_number }}
71+
outputs: pkgs
72+
- name: Upload artifacts
73+
uses: actions/upload-artifact@v4
74+
with:
75+
name: crystal-static-pkgs
76+
path: pkgs
77+
78+
debian:
79+
name: Debian
80+
runs-on: ubuntu-latest
81+
strategy:
82+
fail-fast: false
83+
matrix:
84+
include:
85+
- base_image: ubuntu
86+
version: 24.04
87+
codename: noble
88+
llvm_version: 18
89+
- base_image: debian
90+
version: 13
91+
codename: trixie
92+
llvm_version: 19
93+
steps:
94+
- name: Checkout
95+
uses: actions/checkout@v4
96+
- name: Login to DockerHub
97+
uses: docker/login-action@v2
98+
with:
99+
username: ${{ secrets.DOCKERHUB_USERNAME }}
100+
password: ${{ secrets.DOCKERHUB_TOKEN }}
101+
if: ${{ github.ref == 'refs/heads/main' }}
102+
- uses: depot/setup-action@v1
103+
- name: Export packages
104+
uses: depot/build-push-action@v1
105+
with:
106+
project: zjh7v82xv6
107+
context: debian
108+
no-cache: true
109+
platforms: linux/amd64,linux/arm64
110+
build-args: |
111+
crystal_version=${{ env.crystal_version }}
112+
crystal_src_url=${{ env.crystal_src_url }}
113+
shards_version=${{ env.shards_version }}
114+
gc_version=${{ env.gc_version }}
115+
base_image=${{ matrix.base_image }}
116+
codename=${{ matrix.codename }}
117+
llvm_version=${{ matrix.llvm_version }}
118+
pkg_revision=${{ github.run_number }}
119+
target: pkgs
120+
outputs: pkgs
121+
- name: Upload artifacts
122+
uses: actions/upload-artifact@v4
123+
with:
124+
name: crystal-${{ matrix.base_image }}-${{ matrix.version }}-pkgs
125+
path: pkgs
126+
- name: Build and push container
127+
uses: depot/build-push-action@v1
128+
with:
129+
project: zjh7v82xv6
130+
context: debian
131+
pull: true
132+
push: true
133+
platforms: linux/amd64,linux/arm64
134+
build-args: |
135+
crystal_version=${{ env.crystal_version }}
136+
crystal_src_url=${{ env.crystal_src_url }}
137+
shards_version=${{ env.shards_version }}
138+
gc_version=${{ env.gc_version }}
139+
base_image=${{ matrix.base_image }}
140+
codename=${{ matrix.codename }}
141+
llvm_version=${{ matrix.llvm_version }}
142+
tags: |
143+
84codes/crystal:${{ env.crystal_version }}-${{ matrix.base_image }}-${{ matrix.version }}
144+
84codes/crystal:${{ env.crystal_version }}-${{ matrix.base_image }}-${{ matrix.codename }}
145+
146+
fedora:
147+
name: Fedora
148+
runs-on: ubuntu-latest
149+
strategy:
150+
fail-fast: false
151+
matrix:
152+
include:
153+
- base_image: fedora
154+
base_image_tag: 43
155+
steps:
156+
- name: Checkout
157+
uses: actions/checkout@v4
158+
- name: Login to DockerHub
159+
uses: docker/login-action@v2
160+
with:
161+
username: ${{ secrets.DOCKERHUB_USERNAME }}
162+
password: ${{ secrets.DOCKERHUB_TOKEN }}
163+
if: ${{ github.ref == 'refs/heads/main' }}
164+
- uses: depot/setup-action@v1
165+
- uses: depot/build-push-action@v1
166+
name: Export packages
167+
with:
168+
project: zjh7v82xv6
169+
context: fedora
170+
no-cache: true
171+
platforms: linux/amd64,linux/arm64
172+
build-args: |
173+
crystal_version=${{ env.crystal_version }}
174+
crystal_src_url=${{ env.crystal_src_url }}
175+
gc_version=${{ env.gc_version }}
176+
llvm_version=${{ matrix.llvm_version }}
177+
base_image=${{ matrix.base_image }}
178+
base_image_tag=${{ matrix.base_image_tag }}
179+
pkg_revision=${{ github.run_number }}
180+
target: pkgs
181+
outputs: pkgs
182+
- name: Upload artifacts
183+
uses: actions/upload-artifact@v4
184+
with:
185+
name: crystal-${{ matrix.base_image }}-${{ matrix.base_image_tag }}-pkgs
186+
path: pkgs
187+
- uses: depot/build-push-action@v1
188+
name: Build and push container
189+
with:
190+
project: zjh7v82xv6
191+
context: fedora
192+
pull: true
193+
push: true
194+
platforms: linux/amd64,linux/arm64
195+
build-args: |
196+
crystal_version=${{ env.crystal_version }}
197+
crystal_src_url=${{ env.crystal_src_url }}
198+
gc_version=${{ env.gc_version }}
199+
llvm_version=${{ matrix.llvm_version }}
200+
base_image=${{ matrix.base_image }}
201+
base_image_tag=${{ matrix.base_image_tag }}
202+
pkg_revision=${{ github.run_number }}
203+
tags: |
204+
84codes/crystal:${{ env.crystal_version }}-${{ matrix.base_image }}-${{ matrix.base_image_tag }}

0 commit comments

Comments
 (0)