Browse Source

Added CI.

Бранимир Караџић 1 month ago
parent
commit
77d584bcf7
1 changed files with 183 additions and 0 deletions
  1. 183 0
      .github/workflows/main.yml

+ 183 - 0
.github/workflows/main.yml

@@ -0,0 +1,183 @@
+name: CI
+
+concurrency:
+  group: ${{ github.ref }}
+  cancel-in-progress: true
+
+on:
+  push:
+  pull_request:
+
+jobs:
+  msvc:
+    strategy:
+      fail-fast: true
+      matrix:
+        include: [
+          { config: Debug, platform: Win32, bindir: 'win32_vs2022' },
+          { config: Debug, platform: x64, bindir: 'win64_vs2022' },
+          { config: Release, platform: Win32, bindir: 'win32_vs2022' },
+          { config: Release, platform: x64, bindir: 'win64_vs2022' },
+        ]
+    name: msvc-${{ matrix.config }}-${{ matrix.platform }}
+    runs-on: windows-2022
+    steps:
+      - name: Checkout bx
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bx
+          path: bx
+      - name: Checkout bimg
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bimg
+          path: bimg
+      - name: Prepare
+        uses: microsoft/[email protected]
+      - name: Build
+        shell: cmd
+        run: |
+          cd bimg
+          ..\bx\tools\bin\windows\genie.exe --with-tools --with-shared-lib vs2022
+          msbuild ".build/projects/vs2022/bimg.sln" /m /v:minimal /p:Configuration=${{ matrix.config }} /p:Platform=${{ matrix.platform }}
+      - name: Check
+        shell: cmd
+        run: |
+          cd bimg
+          dir /s ".build\${{ matrix.bindir }}\bin"
+          ".build\${{ matrix.bindir }}\bin\texturec${{ matrix.config }}.exe" --version
+  mingw:
+    strategy:
+      fail-fast: true
+      matrix:
+        include: [
+          { msystem: MINGW64, project: 'mingw-gcc', bindir: 'win64_mingw-gcc' },
+#          { msystem: CLANG64, project: 'mingw-clang', bindir: 'win64_mingw-clang' },
+        ]
+    name: mingw-${{ matrix.msystem }}
+    runs-on: windows-2022
+    steps:
+      - name: Checkout bx
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bx
+          path: bx
+      - name: Checkout bimg
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bimg
+          path: bimg
+      - name: Prepare
+        uses: msys2/setup-msys2@v2
+        with:
+          msystem: ${{ matrix.msystem }}
+          update: true
+          install: make
+          pacboy: cc:p
+      - name: Build
+        shell: msys2 {0}
+        run: |
+          cd bimg
+          make ${{ matrix.project }}-release64 -j$(nproc) AR=ar CC=cc CXX=c++ MINGW=$MINGW_PREFIX
+      - name: Check
+        shell: cmd
+        run: |
+          cd bimg
+          dir /s ".build\${{ matrix.bindir }}\bin"
+          ".build\${{ matrix.bindir }}\bin\texturecRelease.exe" --version
+  linux:
+    strategy:
+      fail-fast: true
+      matrix:
+        include: [
+          { config: debug, binsuffix: Debug },
+          { config: release, binsuffix: Release },
+        ]
+    name: linux-gcc-${{ matrix.config }}64
+    runs-on: ubuntu-24.04
+    steps:
+      - name: Checkout bx
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bx
+          path: bx
+      - name: Checkout bimg
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bimg
+          path: bimg
+      - name: Build
+        run: |
+          sudo apt install libgl-dev
+          cd bimg
+          make -j$(nproc) linux-gcc-${{ matrix.config }}64
+      - name: Check
+        run: |
+          cd bgfx
+          ls -lash ".build/linux64_gcc/bin"
+          ".build/linux64_gcc/bin/texturec${{ matrix.binsuffix}}" --version
+  osx:
+    strategy:
+      fail-fast: true
+      matrix:
+        include: [
+          { config: debug, binsuffix: Debug },
+          { config: release, binsuffix: Release },
+        ]
+    name: osx-arm64-${{ matrix.config }}
+    runs-on: macos-14
+    steps:
+      - name: Checkout bx
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bx
+          path: bx
+      - name: Checkout bimg
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bimg
+          path: bimg
+      - name: Build
+        run: |
+          cd bimg
+          make -j$(sysctl -n hw.physicalcpu) osx-arm64-${{ matrix.config }}
+      - name: Check
+        run: |
+          cd bgfx
+          ls -lash ".build/osx-arm64/bin"
+          ".build/osx-arm64/bin/texturec${{ matrix.binsuffix}}" --version
+  android:
+    strategy:
+      fail-fast: true
+      matrix:
+        include: [
+          { platform: arm64  },
+        ]
+    name: android-${{ matrix.platform }}
+    runs-on: ubuntu-24.04
+    steps:
+      - uses: nttld/setup-ndk@v1
+        id: setup-ndk
+        with:
+          ndk-version: r25b
+          add-to-path: false
+      - name: Checkout bx
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bx
+          path: bx
+      - name: Checkout bimg
+        uses: actions/checkout@v4
+        with:
+          repository: bkaradzic/bimg
+          path: bimg
+      - name: Build
+        run: |
+          cd bimg
+          make -j$(sysctl -n hw.physicalcpu) android-${{ matrix.platform }}
+        env:
+          ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
+      - name: Check
+        run: |
+          cd bimg
+          ls -lash ".build/android-${{ matrix.platform }}/bin"