-
Notifications
You must be signed in to change notification settings - Fork 0
172 lines (162 loc) · 5.89 KB
/
main.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
166
167
168
169
170
171
# .github/workflows/main.yml for texlive-source CI building
#
# Norbert Preining
# Public Domain
#
# This file controls CI testing via Github Actions of the
# git-svn checkout of the TeX Live source directory
# which is pushed to Github
# https://github.com/TeX-Live/texlive-source
# The cron job that does the git svn up and git push is
# running on texlive.info; see norbert cron there. Run cmd as norbert:
# /home/norbert/git-svn-repos/git-svn-syncer --new texlive-source
#
# To make and retrieve new binaries:
# * go to https://github.com/TeX-Live/texlive-source/commits/master
# and check that all commits you want are there (max waiting time 30min).
# * go to https://github.com/TeX-Live/texlive-source/releases
# and "Draft new release" (does git tag).
# * wait 30min or so.
# * go to https://github.com/TeX-Live/texlive-source/releases/latest/
# and there should be binaries for the new "release".
# * use tl-update-bindir.
#
# The actual code for building and running is in the Github Action
# TeX-Live/tl-build-docker-action
#
# TODO
# * it would be nice if we could adjust the docker action usage
# to override the dockerfile but this seems not to be possible at the moment
on: [push]
jobs:
build_job:
runs-on: ubuntu-latest
name: Build on ${{ matrix.tl_name }}
strategy:
fail-fast: false
matrix:
# we need to list the archs here, otherwise the matrix contains only
# one element release_build and that is overwritten by the include statements
tl_name: [ i386-linux, x86_64-linux, x86_64-linuxmusl, aarch64-linux, armhf-linux ]
release_build:
- ${{ startsWith(github.ref, 'refs/tags/') }}
include:
- tl_name: i386-linux
image: i386/ubuntu:xenial
platform: 386
ci_build: true
use_qemu: false
- tl_name: x86_64-linux
image: centos:7
platform: amd64
ci_build: true
use_qemu: false
- tl_name: x86_64-linuxmusl
image: alpine:3.5
platform: amd64
ci_build: true
use_qemu: false
- tl_name: aarch64-linux
image: arm64v8/debian:buster
platform: aarch64
ci_build: false
use_qemu: true
qemu_arch: aarch64
- tl_name: armhf-linux
image: arm32v7/debian:buster
platform: arm/v7
ci_build: false
use_qemu: true
qemu_arch: arm
steps:
- name: checkout-main
uses: actions/checkout@v4
with:
path: 'repo'
- name: Setup QEMU
if: matrix.use_qemu
uses: docker/setup-qemu-action@v2
with:
platforms: ${{ matrix.qemu_arch }}
- name: build
uses: addnab/docker-run-action@v3
if: ${{ matrix.ci_build || matrix.release_build }}
with:
image: ${{ matrix.image }}
options: -v ${{ github.workspace }}:/work --platform linux/${{ matrix.platform }}
run: |
cd /work/repo
case "${{ matrix.image }}" in
i386/ubuntu:*) echo .github/scripts/install-deps.ubuntu.sh ;;
centos:*) echo .github/scripts/install-deps.centos.sh ;;
alpine:*) echo .github/scripts/install-deps.alpine.sh ;;
esac
.github/scripts/build-tl.sh ${{ matrix.tl_name }}
- name: find file step
if: ${{ matrix.ci_build || matrix.release_build }}
run: ls -l $GITHUB_WORKSPACE/repo/texlive-bin-${{ matrix.tl_name }}.tar.gz
- name: save artifact
if: ${{ matrix.ci_build || matrix.release_build }}
uses: actions/upload-artifact@v4
with:
name: texlive-bin-${{ matrix.tl_name }}.tar.gz
path: ${{ github.workspace }}/repo/texlive-bin-${{ matrix.tl_name }}.tar.gz
compression-level: 0
- name: Release
uses: softprops/action-gh-release@v1
if: matrix.release_build
with:
files: $GITHUB_WORKSPACE/repo/texlive-bin-${{ matrix.tl_name }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
bsd_build_job:
runs-on: ubuntu-latest
name: Build on ${{ matrix.arch }}-${{ matrix.bsd }}
strategy:
fail-fast: false
matrix:
arch: [ i386, amd64 ]
bsd: [ freebsd, netbsd ]
ci_build: [ true ]
release_build:
- ${{ startsWith(github.ref, 'refs/tags/') }}
steps:
- name: checkout-main
uses: actions/checkout@v4
with:
path: 'repo'
- name: build freebsd
uses: vmactions/freebsd-vm@v1
if: matrix.bsd == 'freebsd'
with:
usesh: true
run: |
cd repo
github/scripts/install-deps.bsd.sh
.github/scripts/build-tl.sh ${{ matrix.arch }}-${{ matrix.bsd }}
- name: build netbsd
uses: vmactions/netbsd-vm@v1
if: matrix.bsd == 'netbsd'
with:
usesh: true
run: |
cd repo
github/scripts/install-deps.bsd.sh
.github/scripts/build-tl.sh ${{ matrix.arch }}-${{ matrix.bsd }}
- name: find file step
if: ${{ matrix.ci_build || matrix.release_build }}
run: ls -l $GITHUB_WORKSPACE/repo/texlive-bin-${{ matrix.arch }}-${{ matrix.bsd }}.tar.gz
- name: save artifact
if: ${{ matrix.ci_build || matrix.release_build }}
uses: actions/upload-artifact@v4
with:
name: texlive-bin-${{ matrix.arch }}-${{ matrix.bsd }}.tar.gz
path: ${{ github.workspace }}/repo/texlive-bin-${{ matrix.arch }}-${{ matrix.bsd }}.tar.gz
compression-level: 0
- name: Release
uses: softprops/action-gh-release@v1
if: matrix.release_build
with:
files: $GITHUB_WORKSPACE/repo/texlive-bin-${{ matrix.arch }}-${{ matrix.bsd }}.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}