summaryrefslogtreecommitdiffstats
path: root/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml')
-rw-r--r--third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml146
1 files changed, 146 insertions, 0 deletions
diff --git a/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml b/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml
new file mode 100644
index 0000000000..08733dec70
--- /dev/null
+++ b/third_party/rust/mp4parse/link-u-avif-sample-images/.github/workflows/encode-and-decode-daily.yml
@@ -0,0 +1,146 @@
+name: Encode all images and decode them again weekly.
+
+on:
+ push:
+ schedule:
+ - cron: '0 20 * * 0' # https://crontab.guru/#0_2_*_*_0
+
+jobs:
+ check-on-ubuntu:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ matrix:
+ os: [ubuntu-18.04, ubuntu-20.04]
+ include:
+ - os: ubuntu-18.04
+ codename: 'bionic'
+ cavif-flag: ''
+ - os: ubuntu-20.04
+ codename: 'focal'
+ cavif-flag: ''
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install required tools
+ run: sudo apt install -y curl jq unzip coreutils imagemagick
+ - name: Download latest cavif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/cavif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/cavif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "${{ matrix.codename }}")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o cavif.zip -L https://api.github.com/repos/link-u/cavif/actions/artifacts/${artifactId}/zip
+ unzip cavif.zip
+ env:
+ #id of https://github.com/link-u/cavif/actions?query=workflow%3A%22Build+debian+package+on+push+or+release-tags.%22
+ # curl https://api.github.com/repos/link-u/cavif/actions/workflows
+ WORKFLOW_ID: '4521995'
+ - name: Download latest davif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/davif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/davif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "${{ matrix.codename }}")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o davif.zip -L https://api.github.com/repos/link-u/davif/actions/artifacts/${artifactId}/zip
+ unzip davif.zip
+ env:
+ #id of https://github.com/link-u/davif/actions?query=workflow%3A%22Build+debian+package+on+push+or+release-tags.%22
+ # curl https://api.github.com/repos/link-u/davif/actions/workflows
+ WORKFLOW_ID: '452394'
+ - name: Install davif and cavif
+ run: sudo dpkg -i *.deb
+ - name: Use installed cavif and davif
+ run: |
+ sed -i -e 's/^CAVIF=.*$/CAVIF=cavif ${{ matrix.cavif-flag }}/' Makefile
+ sed -i -e 's/^DAVIF=.*$/DAVIF=davif/' Makefile
+ - name: Clean all images.
+ run: make clean
+ - name: Encode them all.
+ run: make all -j $(nproc)
+ - name: Decode them all.
+ run: make decode -j $(nproc)
+ - name: Copy images to upload.
+ run: |
+ mkdir -p ${{ matrix.codename }}/decoded
+ mkdir -p ${{ matrix.codename }}/encoded
+ cp decoded/* ${{ matrix.codename }}/decoded
+ cp *.avif ${{ matrix.codename }}/encoded
+ - name: Upload result
+ uses: actions/upload-artifact@v1
+ with:
+ name: ${{ matrix.codename }}
+ path: ${{ matrix.codename }}
+ - name: Compare the result
+ run: make compare -j $(nproc)
+ check-on-windows:
+ runs-on: windows-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Install msys2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: MINGW64
+ update: true
+ path-type: inherit
+ - name: Install dependencies
+ shell: msys2 {0}
+ run: |
+ set -eux
+ pacman --noconfirm -S make
+ pacman --noconfirm -S bc
+ pacman --noconfirm -S mingw-w64-x86_64-imagemagick
+ pacman --noconfirm -S mingw-w64-x86_64-curl
+ pacman --noconfirm -S mingw-w64-x86_64-jq
+ make --version
+ echo '2+2' | bc
+ magick -version
+ - name: Download latest cavif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/cavif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/cavif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "cavif-win64")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o cavif.zip -L https://api.github.com/repos/link-u/cavif/actions/artifacts/${artifactId}/zip
+ unzip cavif.zip
+ rm cavif.zip
+ ./cavif.exe -h
+ env:
+ WORKFLOW_ID: '4517759'
+ - name: Download latest davif
+ shell: bash
+ run: |
+ runId=$(curl https://api.github.com/repos/link-u/davif/actions/workflows/${WORKFLOW_ID}/runs | jq '[.workflow_runs[] | select( .conclusion == "success")][0].id')
+ artifactId=$(curl https://api.github.com/repos/link-u/davif/actions/runs/${runId}/artifacts | jq '[.artifacts[] | select( .name == "davif-win64")][0].id')
+ curl --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' -o davif.zip -L https://api.github.com/repos/link-u/davif/actions/artifacts/${artifactId}/zip
+ unzip davif.zip
+ rm davif.zip
+ ./davif.exe -h
+ env:
+ WORKFLOW_ID: '4521970'
+ - name: Rewrite Makefile to installed cavif and davif
+ shell: msys2 {0}
+ run: |
+ sed -i -e 's/^CAVIF=.*$/CAVIF=.\/cavif.exe/' Makefile
+ sed -i -e 's/^DAVIF=.*$/DAVIF=.\/davif.exe/' Makefile
+ - name: Clean all images.
+ shell: msys2 {0}
+ run: make clean
+ - name: Encode them all
+ shell: msys2 {0}
+ run: make all -j $(nproc)
+ - name: Decode them all
+ shell: msys2 {0}
+ run: make decode -j $(nproc)
+ - name: Copy images to upload.
+ shell: msys2 {0}
+ run: |
+ mkdir -p win64/decoded
+ mkdir -p win64/encoded
+ cp decoded/* win64/decoded
+ cp *.avif win64/encoded
+ - name: Upload result
+ uses: actions/upload-artifact@v1
+ with:
+ name: win64
+ path: win64
+ - name: Compare the result
+ shell: msys2 {0}
+ run: |
+ export PATH="/mingw64/bin:${PATH}"
+ make compare -j $(nproc)