Skip to content

chore(deps): bump the rust-dependencies group across 1 directory with 5 updates #2706

chore(deps): bump the rust-dependencies group across 1 directory with 5 updates

chore(deps): bump the rust-dependencies group across 1 directory with 5 updates #2706

Workflow file for this run

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 }}