瀏覽代碼

Merge pull request #1990 from dhiltgen/ci_mac_cross

Add macos cross-compile CI coverage
Daniel Hiltgen 1 年之前
父節點
當前提交
e282bdccdd
共有 1 個文件被更改,包括 28 次插入3 次删除
  1. 28 3
      .github/workflows/test.yaml

+ 28 - 3
.github/workflows/test.yaml

@@ -8,7 +8,15 @@ jobs:
     strategy:
     strategy:
       matrix:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
         os: [ubuntu-latest, macos-latest, windows-latest]
+        arch: [amd64, arm64]
+        exclude:
+          - os: ubuntu-latest
+            arch: arm64
+          - os: windows-latest
+            arch: arm64
     runs-on: ${{ matrix.os }}
     runs-on: ${{ matrix.os }}
+    env:
+      GOARCH: ${{ matrix.arch }}
     steps:
     steps:
       - uses: actions/checkout@v4
       - uses: actions/checkout@v4
       - uses: actions/setup-go@v4
       - uses: actions/setup-go@v4
@@ -33,7 +41,7 @@ jobs:
       - run: go generate -x ./...
       - run: go generate -x ./...
       - uses: actions/upload-artifact@v4
       - uses: actions/upload-artifact@v4
         with:
         with:
-          name: ${{ matrix.os }}-libraries
+          name: ${{ matrix.os }}-${{ matrix.arch }}-libraries
           path: |
           path: |
             llm/llama.cpp/build/**/lib/*
             llm/llama.cpp/build/**/lib/*
   lint:
   lint:
@@ -41,7 +49,18 @@ jobs:
     strategy:
     strategy:
       matrix:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
         os: [ubuntu-latest, macos-latest, windows-latest]
+        arch: [amd64, arm64]
+        exclude:
+          - os: ubuntu-latest
+            arch: arm64
+          - os: windows-latest
+            arch: arm64
+          - os: macos-latest
+            arch: amd64
     runs-on: ${{ matrix.os }}
     runs-on: ${{ matrix.os }}
+    env:
+      GOARCH: ${{ matrix.arch }}
+      CGO_ENABLED: "1"
     steps:
     steps:
       - uses: actions/checkout@v4
       - uses: actions/checkout@v4
         with:
         with:
@@ -52,7 +71,7 @@ jobs:
           cache: false
           cache: false
       - uses: actions/download-artifact@v4
       - uses: actions/download-artifact@v4
         with:
         with:
-          name: ${{ matrix.os }}-libraries
+          name: ${{ matrix.os }}-${{ matrix.arch }}-libraries
           path: llm/llama.cpp/build
           path: llm/llama.cpp/build
       - uses: golangci/golangci-lint-action@v3
       - uses: golangci/golangci-lint-action@v3
   test:
   test:
@@ -60,6 +79,12 @@ jobs:
     strategy:
     strategy:
       matrix:
       matrix:
         os: [ubuntu-latest, macos-latest, windows-latest]
         os: [ubuntu-latest, macos-latest, windows-latest]
+        arch: [amd64, arm64]
+        exclude:
+          - os: ubuntu-latest
+            arch: arm64
+          - os: windows-latest
+            arch: arm64
     runs-on: ${{ matrix.os }}
     runs-on: ${{ matrix.os }}
     steps:
     steps:
       - uses: actions/checkout@v4
       - uses: actions/checkout@v4
@@ -72,7 +97,7 @@ jobs:
       - run: go get
       - run: go get
       - uses: actions/download-artifact@v4
       - uses: actions/download-artifact@v4
         with:
         with:
-          name: ${{ matrix.os }}-libraries
+          name: ${{ matrix.os }}-${{ matrix.arch }}-libraries
           path: llm/llama.cpp/build
           path: llm/llama.cpp/build
       - run: go build
       - run: go build
       - run: go test -v ./...
       - run: go test -v ./...