Skip to content

Commit 7846dfb

Browse files
committed
ci: Test crossdev in GitHub Actions
Add a workflow which sets up and tests crossdev for the given list of targets.
1 parent fed508a commit 7846dfb

1 file changed

Lines changed: 53 additions & 0 deletions

File tree

.github/workflows/crossdev.yml

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches:
6+
- master
7+
pull_request:
8+
branches:
9+
- master
10+
schedule:
11+
- cron: 00 4 * * *
12+
13+
jobs:
14+
crossdev:
15+
strategy:
16+
matrix:
17+
include:
18+
# `target` is the cross target.
19+
# `stage3` is the host stage3.
20+
- target: aarch64-unknown-linux-musl
21+
stage3: musl-llvm
22+
args: --llvm
23+
name: crossdev target=${{ matrix.target }} stage3=${{ matrix.stage3 }}
24+
runs-on: ubuntu-latest
25+
container: docker.io/gentoo/stage3:${{ matrix.stage3 }}
26+
steps:
27+
- uses: actions/checkout@v4
28+
29+
- name: Install dependencies
30+
run: |
31+
# FIXME: Uncomment
32+
# emerge --sync --quiet
33+
emerge \
34+
app-eselect/eselect-repository \
35+
sys-apps/config-site
36+
37+
# FIXME: Remove this step once necessary changes are merged.
38+
- name: Use patched overlay
39+
run: |
40+
curl -L \
41+
https://github.com/vadorovsky/gentoo/archive/refs/heads/cross-llvm.tar.gz | \
42+
tar -xz
43+
44+
- name: Install crossdev
45+
run: make install
46+
47+
- name: Create cross environment
48+
run: crossdev ${{ matrix.args }} --target ${{ matrix.target }}
49+
50+
# zstd and its dependencies need both C and C++ toolchain. If any of them
51+
# is broken, the installation will fail.
52+
- name: Sanity check
53+
run: ${{ matrix.target }}-emerge app-arch/zstd

0 commit comments

Comments
 (0)