Update README.md #2449
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 required tools | |
run: | | |
sudo apt-get update | |
sudo apt-get install gzip xxd minify -y | |
- name: Fetch git tags and run bake script | |
run: | | |
git fetch --prune --unshallow | |
TAG=$(git describe --tags) | |
./scripts/build-html.sh $TAG | |
- name: Update version in build.me | |
run: | | |
TAG=$(git describe --tags) | |
DEBIAN_TAG=$(echo $TAG | sed 's/^v//; s/-/~/') | |
sed -i "s/^package_version=.*/package_version=$DEBIAN_TAG/" scripts/build.sh | |
- name: Commit and push changes | |
run: | | |
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/index_html.cpp | |
git add HTML/index_local.html | |
git add HTML/index_local_html.cpp | |
git add HTML/script_js.cpp | |
git add HTML/style_css.cpp | |
git add scripts/build.sh | |
git add Application/version.h | |
git config --local user.email "action@github.com" | |
git config --local user.name "Github Action" | |
git commit -m "Stamp version and bake index.html in HTML.cpp" | |
git push origin main | |
build_debian: | |
if: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
needs: bakeHTML | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
codename: ['bookworm', 'bullseye', 'buster'] | |
arch: ['amd64', 'armhf', 'arm64'] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: main | |
- name: Set filename | |
run: | | |
echo "filename=ais-catcher_debian_${{ matrix.codename }}_${{ matrix.arch }}.deb" >> $GITHUB_ENV | |
- name: Build Debian package | |
run: | | |
sudo apt-get update | |
cp build-docker/bookworm/Dockerfile . | |
sed -i 's/FROM debian:bookworm/FROM debian:${{ matrix.codename }}/g' Dockerfile | |
sed -i 's/amd64/${{ matrix.arch }}/g' Dockerfile | |
sudo apt-get install qemu-user-static | |
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes | |
docker build --platform ${{ matrix.arch}} -t ais-catcher-builder-debian-${{ matrix.codename }}-${{ matrix.arch }} . | |
docker run --rm -v "$(pwd)/output:/output" ais-catcher-builder-debian-${{ matrix.codename }}-${{ matrix.arch }} | |
cp output/ais-catcher.deb ${{ env.filename }} | |
gh release upload 'Edge' ${{ env.filename }} --repo jvde-github/AIS-catcher --clobber | |
- name: Upload Debian package as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.filename }} | |
path: ${{ env.filename }} | |
build_ubuntu: | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
needs: bakeHTML | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
codename: ['focal', 'jammy', 'mantic', 'noble'] | |
arch: ['amd64', 'arm64'] | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
ref: main | |
- name: Set filename | |
run: | | |
echo "filename=ais-catcher_ubuntu_${{ matrix.codename }}_${{ matrix.arch }}.deb" >> $GITHUB_ENV | |
- name: Build Ubuntu package | |
run: | | |
cp build-docker/bookworm/Dockerfile . | |
sed -i 's/FROM debian:bookworm/FROM ubuntu:${{ matrix.codename }}/g' Dockerfile | |
sed -i 's/amd64/${{ matrix.arch }}/g' Dockerfile | |
docker build -t ais-catcher-builder-ubuntu-${{ matrix.codename }}-${{ matrix.arch }} . | |
docker run --rm -v "$(pwd)/output:/output" ais-catcher-builder-ubuntu-${{ matrix.codename }}-${{ matrix.arch }} | |
cp output/ais-catcher.deb ${{ env.filename }} | |
gh release upload 'Edge' ${{ env.filename }} --repo jvde-github/AIS-catcher --clobber | |
- name: Upload Ubuntu package as artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.filename }} | |
path: ${{ env.filename }} | |
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@v5 | |
with: | |
images: ghcr.io/${{ github.repository }} | |
tags: | | |
type=edge,branch=main | |
type=ref,event=tag | |
- name: Setup QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Setup Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
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@v5 | |
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 }} | |
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/setup-msbuild@v2 | |
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@v4 | |
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@v4 | |
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" | |
- name: Building with SoapySDR support | |
run: | | |
echo "x64" > x64-a; echo "Win32" > x86-a; $msplatform = $(cat "${{matrix.platform}}-a") | |
$gen = "Visual Studio 17 2022" | |
$config = "Release" | |
echo "AIS-catcher" | |
vcpkg install soapysdr:${{matrix.platform}}-windows | |
Remove-Item build -Recurse | |
mkdir build; cd build | |
cmake .. -DSOAPYSDR=ON -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 SOAPYSDR | |
run: cp build\*.dll output; cp build\Release\*.exe output; cp plugins\* output\plugins; cp README.md output; | |
- name: Upload Artifacts SOAPYSDR | |
uses: actions/upload-artifact@v4 | |
with: | |
name: "AIS-catcher SOAPYSDR ${{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 SOAPYSDR ${{matrix.platform}}.zip" | |
bash -c "gh release upload 'Edge' './output/AIS-catcher SOAPYSDR ${{matrix.platform}}.zip' --repo jvde-github/AIS-catcher --clobber" | |
del "output\AIS-catcher SOAPYSDR ${{matrix.platform}}.zip" | |