diff --git a/.github/workflows/minichlink.yml b/.github/workflows/minichlink.yml new file mode 100644 index 0000000000000000000000000000000000000000..ce757ad9bd8769549d533db2140f992e21439653 --- /dev/null +++ b/.github/workflows/minichlink.yml @@ -0,0 +1,67 @@ +name: Build minichlink + +on: [push, pull_request] +# push: +# paths: +# - minichlink/** +# pull_request: +# paths: +# - minichlink/** +jobs: + build-minichlink: + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-12, macos-11] + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v3 + - name: Install Dependencies (Linux) + if: ${{ matrix.os == 'ubuntu-latest' }} + run: sudo apt-get update && sudo apt-get install -y build-essential make libusb-1.0-0-dev libudev-dev mingw-w64-x86-64-dev gcc-mingw-w64-x86-64 + # we don't need to brew install libusb on Mac, actually preinstalled on the runner! :) + - name: Build (Linux, Mac) + run: | + cd minichlink + make clean + make V=1 -j3 + # we cross-compile the Windows binaries from Linux + - name: Build (for Windows) + if: ${{ matrix.os == 'ubuntu-latest' }} + run: | + cd minichlink + OS=Windows_NT make clean + OS=Windows_NT make V=1 -j3 minichlink.exe + + - name: "Pack (Linux)" + if: ${{ matrix.os == 'ubuntu-latest' }} + run: tar czf minichlink.tar.gz -C minichlink minichlink minichlink.so 99-minichlink.rules + - name: "Pack (Mac)" + if: ${{ matrix.os == 'macos-12' || matrix.os == 'macos-11' }} + run: tar czf minichlink.tar.gz -C minichlink minichlink + # no packing needed for Windows as it's .exe only + + - name: "Upload minichlink (Linux)" + if: ${{ matrix.os == 'ubuntu-latest' }} + uses: actions/upload-artifact@v3 + with: + name: minichlink (Linux) + path: minichlink.tar.gz + - name: "Upload minichlink (MacOs 11)" + if: ${{ matrix.os == 'macos-11' }} + uses: actions/upload-artifact@v3 + with: + name: minichlink (MacOS 11) + path: minichlink.tar.gz + - name: "Upload minichlink (MacOs 12)" + if: ${{ matrix.os == 'macos-12' }} + uses: actions/upload-artifact@v3 + with: + name: minichlink (MacOS 12) + path: minichlink.tar.gz + - name: "Upload minichlink (Windows)" + if: ${{ matrix.os == 'ubuntu-latest' }} + uses: actions/upload-artifact@v3 + with: + name: minichlink (Windows) + path: minichlink/minichlink.exe \ No newline at end of file