-
Notifications
You must be signed in to change notification settings - Fork 1
123 lines (118 loc) · 3.46 KB
/
build.yml
File metadata and controls
123 lines (118 loc) · 3.46 KB
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
name: Docker build and publish
on:
push:
branches:
- master
schedule:
# Run every Saturday at 3:17 AM UTC
- cron: '17 3 * * 6'
# Cancel in-progress runs of the same workflow
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
linux-x86_64:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image:
- target: construct
implementation: python3.6
- target: construct
implementation: python3.14
- target: cpp_stl
implementation: clang3.4
- target: cpp_stl
implementation: clang18
- target: cpp_stl
implementation: gcc4.8
- target: cpp_stl
implementation: gcc13
- target: csharp
implementation: net8.0
- target: csharp
implementation: net10.0
- target: go
implementation: '1.25'
- target: graphviz
implementation: '12'
- target: java
implementation: temurin8
- target: java
implementation: temurin11
- target: java
implementation: temurin17
- target: java
implementation: temurin21
- target: java
implementation: temurin25
- target: javascript
implementation: nodejs12
- target: javascript
implementation: nodejs18
- target: javascript
implementation: nodejs24
- target: julia
implementation: '1.9'
- target: lua
implementation: '5.3'
- target: lua
implementation: '5.4'
- target: nim
implementation: '1.6.20'
- target: nim
implementation: '2.2.6'
- target: perl
implementation: '5.30'
- target: perl
implementation: '5.42'
- target: php
implementation: '7.1'
- target: php
implementation: '8.4'
- target: python
implementation: '3.8'
- target: python
implementation: '3.14'
- target: ruby
implementation: '1.9'
- target: ruby
implementation: '2.3'
- target: ruby
implementation: '3.4'
- target: rust
implementation: '1.91'
- target: zig
implementation: '0.15.2'
permissions:
contents: read
packages: write # Needed to publish Docker images to GitHub Packages
env:
TARGET: ${{ matrix.image.target }}
IMPL: ${{ matrix.image.implementation }}
steps:
- name: Dump matrix context
env:
MATRIX_CONTEXT: ${{ toJson(matrix) }}
run: echo "$MATRIX_CONTEXT"
- name: checkout
uses: actions/checkout@v5
with:
persist-credentials: false
- name: build
run: |
cd "src/$TARGET/$IMPL-linux-x86_64"
./build
- name: login
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "$GH_TOKEN" | docker login ghcr.io -u "$GITHUB_ACTOR" --password-stdin
- name: tag
run: |
docker tag "kaitai-$TARGET-$IMPL-linux-x86_64" "ghcr.io/kaitai-io/kaitai-$TARGET-$IMPL-linux-x86_64:latest"
- name: publish
run: |
docker push "ghcr.io/kaitai-io/kaitai-$TARGET-$IMPL-linux-x86_64:latest"