name: Rust Build on: push: branches: - main - devel pull_request: branches: - main - devel jobs: install_dependencies: # runs-on: ubuntu-latest # Or similar Debian/Ubuntu based runner runs-on: ubuntu-24.04 container: rust:1.86.0 # Example using the official Rust image (Debian based) steps: - name: Install FFmpeg development libraries run: | apt-get update -y apt-get install -y --no-install-recommends \ libavutil-dev \ libavformat-dev \ libavcodec-dev \ libswscale-dev \ # Add other ffmpeg dev packages if needed by your specific crate rm -rf /var/lib/apt/lists/* # Clean up check: name: Check runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.86.0 - run: | mkdir -p ~/.ssh echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/gitlab_deploy_key chmod 600 ~/.ssh/gitlab_deploy_key ssh-keyscan ${{ vars.MYHOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) ssh-add -v ~/.ssh/gitlab_deploy_key cargo check test: name: Test Suite runs-on: ubuntu-24.04 needs: setup_ssh steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.86.0 - run: | mkdir -p ~/.ssh echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/gitlab_deploy_key chmod 600 ~/.ssh/gitlab_deploy_key ssh-keyscan ${{ vars.MYHOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) ssh-add -v ~/.ssh/gitlab_deploy_key cargo test fmt: name: Rustfmt runs-on: ubuntu-24.04 needs: setup_ssh steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.86.0 - run: rustup component add rustfmt - run: | mkdir -p ~/.ssh echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/gitlab_deploy_key chmod 600 ~/.ssh/gitlab_deploy_key ssh-keyscan ${{ vars.MYHOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) ssh-add -v ~/.ssh/gitlab_deploy_key cargo fmt --all -- --check clippy: name: Clippy runs-on: ubuntu-24.04 needs: setup_ssh steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.86.0 - run: rustup component add clippy - run: | mkdir -p ~/.ssh echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/gitlab_deploy_key chmod 600 ~/.ssh/gitlab_deploy_key ssh-keyscan ${{ vars.MYHOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) ssh-add -v ~/.ssh/gitlab_deploy_key cargo clippy -- -D warnings build: name: build runs-on: ubuntu-24.04 needs: setup_ssh steps: - uses: actions/checkout@v4 - uses: actions-rust-lang/setup-rust-toolchain@v1 with: toolchain: 1.86.0 - run: | mkdir -p ~/.ssh echo "${{ secrets.MYREPO_TOKEN }}" > ~/.ssh/gitlab_deploy_key chmod 600 ~/.ssh/gitlab_deploy_key ssh-keyscan ${{ vars.MYHOST }} >> ~/.ssh/known_hosts eval $(ssh-agent -s) ssh-add -v ~/.ssh/gitlab_deploy_key cargo build --release