From 1908933a7a3ce73fb3caad93500b5d7f8422e07b Mon Sep 17 00:00:00 2001 From: Maximilian Gerhardt <maximilian.gerhardt@rub.de> Date: Mon, 5 Jun 2023 05:43:10 +0200 Subject: [PATCH] Build minichlink in CI (#148) * Fix caching * Create requirements.txt * Fix PlatformIO build for Wiring examples, use cache properly * Remove uneeded file * Add slightly more into PlatformIO ini * Build minichlink in CI (linux) * Build minichlink in CI (linux) * Build minichlink in CI (linux), try 3 * Build minichlink in CI (Windows * Build minichlink in CI (clean) * Build minichlink in CI (clean 2) * Build minichlink in CI (MacOs12) * Build minichlink in CI (MacOs12) * Fix archive creation * Fix archive creation 2 * Build for MacOS 11 too --- .github/workflows/minichlink.yml | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 .github/workflows/minichlink.yml diff --git a/.github/workflows/minichlink.yml b/.github/workflows/minichlink.yml new file mode 100644 index 0000000..ce757ad --- /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 -- GitLab