commit:     c9aaa3e484e39debe599b82fdc8451833bb8f19e
Author:     Michal Rostecki <vadorovsky <AT> protonmail <DOT> com>
AuthorDate: Tue Nov 12 00:39:35 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Nov 12 08:46:11 2024 +0000
URL:        https://gitweb.gentoo.org/proj/crossdev.git/commit/?id=c9aaa3e4

ci: Test crossdev in GitHub Actions

Add a workflow which sets up and tests crossdev for the given list of
targets.

Signed-off-by: Michal Rostecki <vadorovsky <AT> protonmail.com>
Closes: https://github.com/gentoo/crossdev/pull/25
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .github/workflows/crossdev.yml | 47 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 47 insertions(+)

diff --git a/.github/workflows/crossdev.yml b/.github/workflows/crossdev.yml
new file mode 100644
index 0000000..5af15bb
--- /dev/null
+++ b/.github/workflows/crossdev.yml
@@ -0,0 +1,47 @@
+name: CI
+
+on:
+  push:
+    branches:
+      - master
+  pull_request:
+    branches:
+      - master
+  schedule:
+    - cron: 00 4 * * *
+
+jobs:
+  crossdev:
+    strategy:
+      matrix:
+        target:
+          - aarch64-unknown-linux-gnu
+          - aarch64-unknown-linux-musl
+        stage3:
+          - latest # `openrc` (glibc+GCC) is tagged as `latest`
+          - musl
+    name: crossdev target=${{ matrix.target }} stage3=${{ matrix.stage3 }}
+    runs-on: ubuntu-latest
+    container: docker.io/gentoo/stage3:${{ matrix.stage3 }}
+    steps:
+      - uses: actions/checkout@v4
+
+      - name: Install dependencies
+        run: |
+          emerge --sync --quiet
+          emerge \
+            app-eselect/eselect-repository \
+            sys-apps/config-site
+
+      - name: Install crossdev
+        run: make install
+
+      - name: Create cross environment
+        run: |
+          eselect repository create crossdev
+          crossdev ${{ matrix.args }} --target ${{ matrix.target }}
+
+      # zstd and its dependencies need both C and C++ toolchain. If any of them
+      # is broken, the installation will fail.
+      - name: Sanity check
+        run: ${{ matrix.target }}-emerge app-arch/zstd

Reply via email to