name: Build for all platforms on: workflow_dispatch: env: CARGO_TERM_COLOR: always jobs: Linux: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v1 - name: Packages run: sudo apt-get update && sudo apt-get install build-essential yasm libavutil-dev libavcodec-dev libavformat-dev libavfilter-dev libavfilter-dev libavdevice-dev libswresample-dev libfftw3-dev ffmpeg - name: Build run: | cargo build --release strip target/release/bliss-analyser mkdir releases cp target/release/bliss-analyser releases/bliss-analyser - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: bliss-analyser-linux path: releases/ # macOS: # runs-on: macos-11.0 # # steps: # - name: Install Rust # uses: actions-rs/toolchain@v1 # with: # toolchain: stable # # - name: Checkout # uses: actions/checkout@v2 # # - name: Install deps # run: | # brew install ffmpeg # # - name: Install Rust support for ARM64 & prepare environment # run: | # rustup target add aarch64-apple-darwin # mkdir releases # # - name: Build # run: | # cargo build --release # strip target/release/bliss-analyser # cp target/release/bliss-analyser releases/bliss-analyser-x86_64 # cargo build --target=aarch64-apple-darwin --release # strip target/aarch64-apple-darwin/release/bliss-analyser # cp target/aarch64-apple-darwin/release/bliss-analyser releases/bliss-analyser-arm64 # # - name: Build fat binary # run: | # lipo -create \ # -arch x86_64 releases/bliss-analyser-x86_64 \ # -arch arm64 releases/bliss-analyser-arm64 \ # -output releases/bliss-analyser # # - name: Upload artifacts # uses: actions/upload-artifact@v2 # with: # name: bliss-analyser-mac # path: releases/ Windows: runs-on: windows-2019 steps: - name: Checkout uses: actions/checkout@v2 - name: Install deps run: | $VCINSTALLDIR = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath) Add-Content $env:GITHUB_ENV "LIBCLANG_PATH=${VCINSTALLDIR}\VC\Tools\LLVM\x64\bin`n" Invoke-WebRequest "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-full-shared.7z" -OutFile ffmpeg-shared.7z 7z x ffmpeg-shared.7z mkdir deps mv ffmpeg-*/* deps/ Add-Content $env:GITHUB_ENV "FFMPEG_DIR=${pwd}\deps`n" Add-Content $env:GITHUB_PATH "${pwd}\deps\bin`n" - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable override: true components: rustfmt, clippy - name: Build run: | cargo build --release mkdir releases cp target/release/bliss-analyser.exe releases/bliss-analyser.exe cp deps/bin/*.dll releases/ - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: bliss-analyser-windows path: releases/