name: CI env: BUILD_TYPE: MinSizeRel BUILD_PATH: build on: push: branches: [ main, dev ] jobs: # ---------------------------------------------------------------------- # 1. Linux Build # ---------------------------------------------------------------------- job_linux: name: Linux Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Install Dependencies run: | sudo apt-get update sudo apt-get install -y build-essential cmake libtag1-dev - name: Configure CMake run: | cmake -B ${{github.workspace}}/build \ -DCMAKE_BUILD_TYPE=Release \ -S ${{github.workspace}} - name: Build run: cmake --build ${{github.workspace}}/build --config Release - name: Upload Linux Artifact uses: actions/upload-artifact@v4 with: name: build-artifact-linux path: ${{github.workspace}}/build/ncmdump # ---------------------------------------------------------------------- # 2. macOS Build # ---------------------------------------------------------------------- job_macos: name: macOS Build runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Install Dependencies run: | brew install taglib - name: Configure CMake run: | cmake -B ${{github.workspace}}/build \ -DCMAKE_BUILD_TYPE=Release \ -S ${{github.workspace}} - name: Build run: cmake --build ${{github.workspace}}/build --config Release - name: Upload macOS Artifact uses: actions/upload-artifact@v4 with: name: build-artifact-macos path: ${{github.workspace}}/build/ncmdump # ---------------------------------------------------------------------- # 3. Windows Build # ---------------------------------------------------------------------- job_windows: name: Windows Build runs-on: windows-latest env: VCPKG_TRIPLET: x64-windows-static steps: - name: Checkout uses: actions/checkout@v4 with: submodules: true - name: Install Dependencies uses: lukka/run-vcpkg@v11 id: vcpkg with: vcpkgJsonGlob: '**/vcpkg.json' vcpkgTriplet: ${{ env.VCPKG_TRIPLET }} - name: Configure CMake run: | cmake -B ${{github.workspace}}/build ` -DCMAKE_TOOLCHAIN_FILE=${{ steps.vcpkg.outputs.toolchain-file }} ` -DVCPKG_TARGET_TRIPLET=${{ env.VCPKG_TRIPLET }} ` -S ${{github.workspace}} - name: Build run: cmake --build ${{github.workspace}}/build --config Release - name: Upload Windows Executable Artifact uses: actions/upload-artifact@v4 with: name: build-artifact-windows path: ${{github.workspace}}/build/ncmdump.exe - name: Upload Windows Library Artifact uses: actions/upload-artifact@v4 with: name: build-artifact-windows path: ${{github.workspace}}/build/libncmdump.dll