name: build on: push jobs: make: name: Make runs-on: ubuntu-22.04 env: WATCOM: /opt/watcom EDPATH: /opt/watcom/eddat INCLUDE: /opt/watcom/h:/opt/watcom/lh steps: - name: Install build tools run: sudo apt update && sudo apt install build-essential crossbuild-essential-i386 gcc-mingw-w64-i686 binutils-mingw-w64-i686 mingw-w64-i686-dev gcc-mingw-w64-x86-64 binutils-mingw-w64-x86-64 mingw-w64-x86-64-dev xz-utils - name: Download OpenWatcom if: steps.cache.outputs.cache-hit != 'true' run: | rm -rf /opt/watcom mkdir /opt/watcom wget -qO- https://github.com/open-watcom/open-watcom-v2/releases/download/2023-12-01-Build/ow-snapshot.tar.xz | tar -Jxv -C /opt/watcom echo "/opt/watcom/binl64:/opt/watcom/binl" >> $GITHUB_PATH - name: Download and build libpci if: steps.cache.outputs.cache-hit != 'true' run: | rm -rf /opt/pciutils-* wget -qO- https://github.com/pciutils/pciutils/releases/download/v3.13.0/pciutils-3.13.0.tar.gz | tar -zxv -C /opt cd /opt/pciutils-* make CC=i686-linux-gnu-gcc ZLIB=no DNS=no SHARED=no sudo make install-lib make clean make all CROSS_COMPILE=i686-w64-mingw32- HOST=i586-windows ZLIB=no DNS=no SHARED=no IDSDIR="" sudo make install-lib PREFIX=/usr/i686-w64-mingw32 make clean make all CROSS_COMPILE=x86_64-w64-mingw32- HOST=x86_64-windows ZLIB=no DNS=no SHARED=no IDSDIR="" sudo make install-lib PREFIX=/usr/x86_64-w64-mingw32 - uses: actions/checkout@v4 - name: Build `cp437` run: | cd ${{ github.workspace }}/cp437 gcc cp437.c -o cp437 - name: Build `ac97` run: | cd ${{ github.workspace }}/ac97 wmake make -f Makefile.gcc clean all CC=i686-linux-gnu-gcc CFLAGS=-I/usr/local/include LDFLAGS=-static - name: Build `acpi` run: | cd ${{ github.workspace }}/acpi wmake - name: Build `biosdump` run: | cd ${{ github.workspace }}/biosdump wmake - name: Build `isapnp` run: | cd ${{ github.workspace }}/isapnp wmake - name: Build `kbtest` run: | cd ${{ github.workspace }}/kbtest wmake - name: Build `pcireg` run: | cd ${{ github.workspace }}/pcireg wmake make -f Makefile.uefi ARCH=x86_64 make -f Makefile.win32 clean all X64=n make -f Makefile.win32 clean all X64=y make -f Makefile.gcc clean all CC=i686-linux-gnu-gcc CFLAGS=-I/usr/local/include LDFLAGS=-static - name: Build `usblgoff` run: | cd ${{ github.workspace }}/usblgoff wmake - uses: actions/upload-artifact@v4 with: name: probing-tools-${{ github.sha }}-${{ github.job }} path: | **/*.EXE **/*.EFI ac97/ac97 pcireg/pcireg pcireg/pcireg*.exe **/*.LHA ac97/*.md acpi/*.md biosdump/*.md isapnp/*.md kbtest/*.md pcireg/*.md usblgoff/*.md newbasic: name: NewBasic runs-on: windows-latest steps: - name: Download NewBasic assembler run: | Invoke-WebRequest http://www.fysnet.net/zips/nbasm.zip -OutFile nbasm.zip Expand-Archive nbasm.zip -DestinationPath "$env:LOCALAPPDATA/Programs" echo "$env:LOCALAPPDATA/Programs" >> $env:GITHUB_PATH - uses: actions/checkout@v4 - name: Build `amikey` run: | cd ${{ github.workspace }}/amikey ./build.bat AMIKEY ./build.bat JETKEY - name: Build `multikey` run: | cd ${{ github.workspace }}/multikey ./build.bat MULTIKEY - name: Build `viakey` run: | cd ${{ github.workspace }}/viakey ./build.bat VIAKEY - uses: actions/upload-artifact@v4 with: name: probing-tools-${{ github.sha }}-${{ github.job }} path: | **/*.COM amikey/*.md multikey/*.md viakey/*.md merge: name: Artifacts runs-on: ubuntu-22.04 needs: [make, newbasic] steps: - name: Merge artifacts uses: actions/upload-artifact/merge@v4 with: name: probing-tools-${{ github.sha }} pattern: probing-tools-${{ github.sha }}-* delete-merged: true