Gba updates #7
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build (Docker/Windows) | |
on: | |
push: | |
branches: | |
- 'main' | |
tags: | |
- '*' | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
bakeHTML: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
- name: Install gzip, xxd, minify | |
run: | | |
sudo apt-get update | |
sudo apt-get install gzip xxd minify -y | |
- name: Stamp version number | |
run: | | |
git fetch --prune --unshallow | |
TAG=$(git describe --tags) | |
sed -i '/VERSION_DESCRIBE/d' Application/AIS-catcher.h | |
echo -e "#define VERSION_DESCRIBE\t\"$TAG\"" >> Application/AIS-catcher.h | |
- name: Minify and compress index.html | |
run: | | |
cd HTML | |
rm HTML.cpp | |
rm HTML_local.cpp | |
rm index_local.html | |
minify index.html | gzip > index_html_gz | |
xxd -i index_html_gz > HTML.cpp | |
sed -e 's|https://cdn.jsdelivr.net/|cdn/|g' -e 's|https://unpkg.com/|cdn/|g' index.html > index_local.html | |
minify index_local.html | gzip > index_local_html_gz | |
xxd -i index_local_html_gz > HTML_local.cpp | |
cd .. | |
if [[ -z $(git diff) ]]; then | |
echo "Nothing to commit, working tree clean" | |
exit 0 | |
else | |
echo "There are changes to be committed" | |
fi | |
git add HTML/HTML.cpp | |
git add HTML/index_local.html | |
git add HTML/HTML_local.cpp | |
git add Application/AIS-catcher.h | |
git config --local user.email "[email protected]" | |
git config --local user.name "Github Action" | |
git commit -m "Stamp version and bake index.html in HTML.cpp" | |
git push origin main | |
Docker: | |
runs-on: ubuntu-latest | |
needs: bakeHTML | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: main | |
- name: Calculate Container Metadata | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: ghcr.io/${{ github.repository }} | |
tags: | | |
type=edge,branch=main | |
type=ref,event=tag | |
- name: Setup QEMU | |
uses: docker/setup-qemu-action@v2 | |
- name: Setup Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v2 | |
if: github.event_name != 'pull_request' | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build and Push Images | |
uses: docker/build-push-action@v3 | |
with: | |
context: . | |
platforms: linux/amd64, linux/386, linux/arm64, linux/arm/v6, linux/arm/v7 | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
macos-intel: | |
runs-on: macos-12 | |
needs: bakeHTML | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Update brew repositories | |
run: brew update | |
- name: Install dependencies | |
run: brew install libusb | |
- name: Install more recent librtlsdr | |
run: git clone https://github.com/osmocom/rtl-sdr && cd rtl-sdr && mkdir build && cd build && cmake -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 -DCMAKE_BUILD_TYPE=Release .. && make -j3 LIBRARY_PATH=$(pkg-config --libs-only-L libusb-1.0 | sed 's/\-L//') && sudo make install && cd ../../ | |
- name: build AIS-catcher | |
run: mkdir build; cd build; cmake ..; make | |
- name: upload artifact | |
run: mkdir output; cp build/AIS-catcher output/ | |
- name: Upload Artifacts MACOS-intel | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "AIS-catcher macos-intel" | |
path: | | |
output | |
Windows: | |
runs-on: windows-2022 | |
needs: bakeHTML | |
strategy: | |
matrix: | |
platform: [x86, x64] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: main | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
with: | |
msbuild-architecture: ${{matrix.platform}} | |
- name: Restore vcpkg packages | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
vcpkg integrate install | |
- name: Install vcpkg packages | |
working-directory: ${{env.GITHUB_WORKSPACE}} | |
run: | | |
vcpkg install libpq:${{matrix.platform}}-windows fftw3:${{matrix.platform}}-windows openssl:${{matrix.platform}}-windows libusb:${{matrix.platform}}-windows pthread:${{matrix.platform}}-windows zlib:${{matrix.platform}}-windows soxr:${{matrix.platform}}-windows zeromq:${{matrix.platform}}-windows | |
- name: Setting up directories | |
run: | | |
mkdir output; cd output; mkdir plugins; mkdir Licenses; cd ..; mkdir include; cd include; mkdir curl; mkdir openssl; cd ..; mkdir release; mkdir lib; | |
cp C:\vcpkg\installed\${{matrix.platform}}-windows\include\*.h include | |
cp C:\vcpkg\installed\${{matrix.platform}}-windows\include\openssl\*.h include\openssl | |
cp C:\vcpkg\installed\${{matrix.platform}}-windows\lib\*.lib lib | |
cp C:\vcpkg\installed\${{matrix.platform}}-windows\bin\*.dll release | |
- name: Create start.bat | |
run: | | |
cd output | |
echo "AIS-catcher -v 10 -X -u 127.0.0.1 10110 -N 8100 PLUGIN_DIR plugins`nPAUSE" |Out-File -FilePath start.bat -Encoding ascii | |
cd .. | |
- name: Building Libraries and AIS-catcher | |
run: | | |
echo "x64" > x64-a; echo "Win32" > x86-a; $msplatform = $(cat "${{matrix.platform}}-a") | |
$gen = "Visual Studio 17 2022" | |
$config = "Release" | |
$libusb_inc = "C:\vcpkg\installed\${{matrix.platform}}-windows\include\libusb-1.0" | |
$libusb_lib = "C:\vcpkg\installed\${{matrix.platform}}-windows\lib\libusb-1.0.lib" | |
$pthread_lib = "C:\vcpkg\installed\${{matrix.platform}}-windows\lib\pthreadVC3.lib" | |
$pthread_inc = "C:\vcpkg\installed\${{matrix.platform}}-windows\include" | |
$fftw3_lib = "C:\vcpkg\installed\${{matrix.platform}}-windows\lib\fftw3.lib" | |
$fftw3_inc = "C:\vcpkg\installed\${{matrix.platform}}-windows\include" | |
echo "RTLSDR" | |
git clone https://github.com/jvde-github/rtl-sdr.git | |
cd rtl-sdr; mkdir build; cd build | |
cmake .. -A $msplatform -G $gen -DLIBUSB_FOUND=1 -DLIBUSB_INCLUDE_DIRS="$libusb_inc" | |
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform rtlsdr.sln | |
cd ..; cd .. | |
cp rtl-sdr\build\src\Release\*.dll release | |
cp rtl-sdr\build\src\Release\*.lib lib | |
cp rtl-sdr\include\*.h include | |
cp rtl-sdr\COPYING output\Licenses\RTLSDR | |
echo "AIRSPY HF+" | |
git clone https://github.com/airspy/airspyhf.git | |
git reset --hard b93deddfd05f8350b0adf75d671072e7fa7bec35 | |
cd airspyhf; mkdir build; cd build | |
cmake .. -A $msplatform -G $gen -DLIBUSB_LIBRARIES="$libusb_lib" -DLIBUSB_INCLUDE_DIR="$libusb_inc" -DTHREADS_PTHREADS_WIN32_LIBRARY="$pthread_lib" -DTHREADS_PTHREADS_INCLUDE_DIR="$pthread_inc" | |
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform airspyhf_all.sln | |
cd ..; cd .. | |
cp airspyhf\build\libairspyhf\src\Release\*.dll release | |
cp airspyhf\build\libairspyhf\src\Release\*.lib lib | |
cp airspyhf\libairspyhf\src\airspyhf.h include | |
cp airspyhf\LICENSE output\Licenses\AIRSPYHF | |
echo "AIRSPY" | |
git clone https://github.com/airspy/airspyone_host.git | |
git reset --hard b97309a6a24db161de990d6e4f0432fc94f72cd9 | |
cd airspyone_host; mkdir build; cd build | |
cmake .. -A $msplatform -G $gen -DLIBUSB_LIBRARIES="$libusb_lib" -DLIBUSB_INCLUDE_DIR="$libusb_inc" -DTHREADS_PTHREADS_WIN32_LIBRARY="$pthread_lib" -DTHREADS_PTHREADS_INCLUDE_DIR="$pthread_inc" | |
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform airspy_all.sln | |
cd ..; cd .. | |
cp airspyone_host\build\airspy-tools\src\*.dll release | |
cp airspyone_host\build\libairspy\src\Release\*.lib lib | |
cp airspyone_host\libairspy\src\*.h include | |
cp airspyone_host\airspy-tools\LICENSE.md output\Licenses\AIRSPY | |
echo "HACK RF" | |
git clone https://github.com/greatscottgadgets/hackrf.git | |
git reset --hard 34cbbe7330d1e11e7967f84da39d04a61bfdf4f1 | |
cd hackrf; cd host; mkdir build; cd build | |
cmake .. -A $msplatform -G $gen -DLIBUSB_LIBRARIES="$libusb_lib" -DLIBUSB_INCLUDE_DIR="$libusb_inc" -DTHREADS_PTHREADS_WIN32_LIBRARY="$pthread_lib" -DTHREADS_PTHREADS_INCLUDE_DIR="$pthread_inc" -DFFTW_LIBRARIES="$fftw3_lib" -DFFTW_INCLUDES="$fftw3_inc" | |
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform HackRF.sln | |
cd ..; cd ..; cd .. | |
cp hackrf\host\build\libhackrf\src\Release\*.dll release | |
cp hackrf\host\build\libhackrf\src\Release\*.lib lib | |
cp hackrf\host\libhackrf\src\*.h include | |
cp hackrf\COPYING output\Licenses\HACKRF | |
echo "AIS-catcher" | |
mkdir build; cd build | |
cmake .. -A $msplatform -G $gen -DPOTHOSSDR_INCLUDE_DIR=${{github.workspace}}\include -DPOTHOSSDR_LIBRARY_DIR=${{github.workspace}}\lib -DPOTHOSSDR_BINARY_DIR=${{github.workspace}}\release | |
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform AIS-catcher.sln | |
cd .. | |
cp LICENSE output\Licenses\AIS-catcher | |
- name: Prepare output | |
run: cp build\*.dll output; cp build\Release\*.exe output; cp plugins\* output\plugins; cp README.md output; | |
- name: Upload Artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "AIS-catcher ${{matrix.platform}}" | |
path: | | |
output | |
- name: Compress, upload, and delete ZIP file | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
Compress-Archive -Path output/* -DestinationPath "output/AIS-catcher ${{matrix.platform}}.zip" | |
bash -c "gh release upload 'Edge' './output/AIS-catcher ${{matrix.platform}}.zip' --repo jvde-github/AIS-catcher --clobber" | |
del "output\AIS-catcher ${{matrix.platform}}.zip" | |
- name: Download SDRPlay API | |
run: | | |
cd "C:/Program Files/" | |
Invoke-WebRequest -Uri " https://www.sdrplay.com/software/SDRplay_RSP_API-Windows-3.09.exe" -OutFile sdrplay.exe | |
choco install innoextract | |
innoextract sdrplay.exe | |
ren app SDRplay | |
- name: Building with SDRPlay support | |
run: | | |
cp "C:\Program Files\SDRplay\API\docs\SDRplay_RSP_API_Release_Notes_V3.09.pdf" output\Licenses\SDRPLAY.pdf | |
echo "x64" > x64-a; echo "Win32" > x86-a; $msplatform = $(cat "${{matrix.platform}}-a") | |
$gen = "Visual Studio 17 2022" | |
$config = "Release" | |
echo "AIS-catcher" | |
Remove-Item build -Recurse | |
mkdir build; cd build | |
cmake .. -A $msplatform -G $gen -DPOTHOSSDR_INCLUDE_DIR=${{github.workspace}}\include -DPOTHOSSDR_LIBRARY_DIR=${{github.workspace}}\lib -DPOTHOSSDR_BINARY_DIR=${{github.workspace}}\release | |
msbuild /verbosity:quiet /m /p:Configuration=$config /p:Platform=$msplatform AIS-catcher.sln | |
cd .. | |
cp LICENSE output\Licenses\AIS-catcher | |
- name: Prepare output SDRPLAY | |
run: cp build\*.dll output; cp build\Release\*.exe output; cp plugins\* output\plugins; cp README.md output; | |
- name: Upload Artifacts SDRPLAY | |
uses: actions/upload-artifact@v3 | |
with: | |
name: "AIS-catcher SDRPLAY ${{matrix.platform}}" | |
path: | | |
output | |
- name: Compress, upload, and delete ZIP file | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
Compress-Archive -Path output/* -DestinationPath "output/AIS-catcher SDRPLAY ${{matrix.platform}}.zip" | |
bash -c "gh release upload 'Edge' './output/AIS-catcher SDRPLAY ${{matrix.platform}}.zip' --repo jvde-github/AIS-catcher --clobber" | |
del "output\AIS-catcher SDRPLAY ${{matrix.platform}}.zip" | |