on: workflow_dispatch
name: freebsd
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Run tests in FreeBSD VM
uses: cross-platform-actions/action@v0.32.0
with:
memory: 2G
operating_system: freebsd
version: "15.0"
shell: bash
run: |
uname -a
sudo pkg install -y --quiet curl
sudo pkg install -y --quiet wget
curl https://sh.rustup.rs -sSf --output rustup.sh
bash rustup.sh -y --profile minimal --default-toolchain stable
export PATH=${HOME}/.cargo/bin:{$PATH}
echo "~~~~ rustc --version ~~~~"
rustc --version
echo "~~~~ installing cmake, protobuf, mp4decrypt ~~~~~"
sudo pkg install -y --quiet devel/cmake
sudo pkg install -y --quiet devel/protobuf
sudo pkg install -y --quiet Bento4
mp4decrypt || true
# we are depending here on FreeBSD's Linux binary compatibility layer
sudo service linux onestart
sudo pkg install -y --quiet linux_base-rl9
echo "~~~~ downloading shaka-packager ~~~~"
# Don't download this with curl; json parsing tricks are needed
wget --quiet -O /tmp/shaka-packager https://github.com/shaka-project/shaka-packager/releases/latest/download/packager-linux-x64
sudo mv /tmp/shaka-packager /usr/local/bin
sudo chmod +x /usr/local/bin/shaka-packager
sudo brandelf -t Linux /usr/local/bin/shaka-packager
ls -l /usr/local/bin/shaka-packager
export PATH=${PATH}:/usr/local/bin
echo "~~~~ shaka-packager version ~~~~"
shaka-packager --version
echo "~~~~ installing ffmpeg ~~~~"
sudo pkg install -y --quiet ffmpeg
sudo pkg install -y --quiet libxslt
ls -l
echo "~~~~ building dash-mpd-cli ~~~~"
cargo build --jobs 1 --no-default-features --verbose
echo "~~~~ running tests ~~~~"
env CI=yes cargo test --jobs 1 --no-default-features --verbose -- --skip container