name: tests on: push: paths-ignore: - "*.yml" - .gitignore - "*.md" pull_request: paths-ignore: - "*.yml" - .gitignore - "*.md" env: deps: python3-dev libglib2.0-0 libsm6 libxext6 libxrender-dev libgl1-mesa-glx x265_deps: libx265-dev libnuma-dev mercurial cmake nasm DEBIAN_FRONTEND: noninteractive temp: .temp jobs: validate: name: ${{ matrix.name }} runs-on: ubuntu-latest container: registry.gitlab.com/luigi311/av1-docker:latest strategy: fail-fast: false matrix: include: - name: baseline flags: "" - name: rav1e flags: -enc rav1e - name: x265 encoder: x265 flags: -enc x265 - name: workers flags: -w 2 - name: chunk hybrid flags: --chunk_method hybrid - name: chunk select flags: --chunk_method select - name: video flags flags: -v " --threads=2 --cpu-used=6 --end-usage=q --cq-level=30 " - name: target vmaf flags: -v " --threads=2 --cpu-used=6 --end-usage=q --cq-level=30 " --vmaf_target 95 - name: extra splits flags: -xs 10 - name: split method flags: --split_method aom_keyframes - name: temp flags: --temp temporary temp: "temporary" steps: - uses: actions/checkout@v2 - name: Validate encoders run: | aomenc --help SvtAv1EncApp --help rav1e --help - name: Install requirements run: | apt-get update && apt-get install -y ${{ env.deps }} pip3 install --no-cache-dir -r requirements.txt - name: Install x265 if: matrix.encoder == 'x265' run: | apt-get install -y ${{ env.x265_deps }} git clone https://github.com/videolan/x265.git cd x265/build/linux cmake -G "Unix Makefiles" -DENABLE_SHARED=off ../../source make -j$(nproc) make install - name: Download videos run: | for url in raw.githubusercontent.com/OpenVisualCloud/SVT-AV1-Resources/master randomderp.com; do curl -LO https://$url/video.tar.gz && break done tar xf video.tar.gz - name: Testing ${{ matrix.name }} run: | [ "${{ matrix.temp }}" != "" ] && TEMP=${{ matrix.temp }} || TEMP=${{ env.temp }} ./av1an.py -i bus_cif.y4m -tr 20 --keep ${{ matrix.flags }} -o "$TEMP"/bus_cif.mkv echo ::set-env name=TEMPPATH::$TEMP - name: Upload video uses: actions/upload-artifact@v2 with: name: "${{ matrix.name }}" path: "${{ env.TEMPPATH }}"