chore(deps): bump the rust-dependencies group across 1 directory with 5 updates #2706
Workflow file for this run
This file contains hidden or 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: tests | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
jobs: | |
formatting: | |
runs-on: ubuntu-latest | |
container: shssoichiro/av1an-ci:latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust nightly | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: nightly | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
- name: Validate formatting | |
run: | | |
cargo fmt --all -- --check | |
unit-tests: | |
runs-on: ubuntu-latest | |
container: shssoichiro/av1an-ci:latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
lfs: "true" | |
- name: Install Rust stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
- name: Validate encoders | |
run: | | |
which aomenc | |
which SvtAv1EncApp | |
which rav1e | |
which vpxenc | |
which x265 | |
which x264 | |
which vspipe | |
which ffmpeg | |
- name: Build Av1an | |
run: | | |
cargo clippy --profile ci -- -D warnings | |
- name: Install cargo-msrv | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-msrv | |
- name: Validate minimum Rust version | |
run: | | |
cargo msrv verify --path av1an | |
cargo msrv verify --path av1an-core | |
- name: Testing unit tests | |
working-directory: ./av1an-core | |
run: | | |
cargo test --profile ci | |
- name: Testing integration tests | |
working-directory: ./av1an | |
run: | | |
cargo test --profile ci | |
code-coverage: | |
needs: [formatting, unit-tests] | |
runs-on: ubuntu-latest | |
container: shssoichiro/av1an-ci:latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
lfs: "true" | |
- name: Install Rust stable | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- uses: Swatinem/rust-cache@v2 | |
- name: Validate encoders | |
run: | | |
which aomenc | |
which SvtAv1EncApp | |
which rav1e | |
which vpxenc | |
which x265 | |
which x264 | |
which vspipe | |
which ffmpeg | |
- name: Install cargo-llvm-cov | |
uses: taiki-e/install-action@v2 | |
with: | |
tool: cargo-llvm-cov | |
- name: Generate code coverage | |
run: cargo llvm-cov --profile ci --workspace --lcov --output-path lcov.log --ignore-filename-regex tests\.rs | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
files: lcov.log | |
fail_ci_if_error: false | |
docker: | |
needs: [formatting, unit-tests] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Build | |
id: docker_build | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: ./Dockerfile | |
push: false | |
tags: av1an:action | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new,mode=max | |
- name: Move cache | |
# Temp fix | |
# https://github.com/docker/build-push-action/issues/252 | |
# https://github.com/moby/buildkit/issues/1896 | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
# Job to output if docker-publish should run or not based on if DOCKERHUB_USERNAME and DOCKERHUB_TOKEN are set | |
publish-check: | |
runs-on: ubuntu-latest | |
outputs: | |
should_publish: ${{ steps.publish_check.outputs.should_publish }} | |
steps: | |
- name: Check for DOCKERHUB_USERNAME and DOCKERHUB_TOKEN | |
id: publish_check | |
run: | | |
if [ -z ${{ secrets.DOCKERHUB_USERNAME }} ] || [ -z ${{ secrets.DOCKERHUB_TOKEN }} ]; then | |
echo "should_publish=false" >> $GITHUB_OUTPUT | |
else | |
echo "should_publish=true" >> $GITHUB_OUTPUT | |
fi | |
docker-publish: | |
needs: [unit-tests, docker, publish-check] | |
runs-on: ubuntu-latest | |
if: needs.publish-check.outputs.should_publish == 'true' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Docker meta | |
id: docker_meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ${{ secrets.DOCKERHUB_USERNAME }}/av1an | |
tags: | | |
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }} | |
type=ref,event=branch | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
type=sha | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to DockerHub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Cache Docker layers | |
uses: actions/cache@v4 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Build and push | |
id: docker_build | |
uses: docker/build-push-action@v6 | |
with: | |
context: . | |
file: ./Dockerfile | |
push: true | |
tags: ${{ steps.docker_meta.outputs.tags }} | |
labels: ${{ steps.docker_meta.outputs.labels }} | |
cache-from: type=local,src=/tmp/.buildx-cache | |
- name: Image digest | |
run: echo ${{ steps.docker_build.outputs.digest }} |