Use GitHub Artifacts to upload and download testdata images in CI #3779
This file contains 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: Go | |
on: | |
push: | |
branches: [ "main" ] | |
pull_request: | |
branches: [ "main" ] | |
workflow_dispatch: | |
inputs: | |
updateTestdata: | |
description: 'Update testdata images' | |
required: true | |
default: true | |
type: boolean | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.22' | |
- name: Set up Core | |
run: go install ./cmd/core && core setup | |
- name: "Install video dependencies (TODO: move to a command)" | |
run: sudo add-apt-repository ppa:savoury1/ffmpeg4 && sudo apt install libswscale-dev libavcodec-dev libavformat-dev libswresample-dev libavutil-dev libasound2-dev | |
- name: Build | |
run: go build -v ./... | |
- name: Download testdata | |
uses: dawidd6/action-download-artifact@v6 | |
with: | |
name: testdata | |
workflow_search: true | |
search_artifacts: true | |
if_no_artifact_found: warn | |
- name: Set CORE_UPDATE_TESTDATA env var | |
if: inputs.updateTestdata | |
run: echo "CORE_UPDATE_TESTDATA=true" >> $GITHUB_ENV | |
# we can't test gpu, xyz, and system on the CI since there is no Vulkan support | |
- name: Test | |
run: go test -v $(go list ./... | grep -v gpu | grep -v xyz | grep -v system) -coverprofile cover.out -timeout 30s | |
- name: Upload testdata | |
uses: actions/upload-artifact@v4 | |
with: | |
name: testdata | |
path: "**/testdata/**/*.png" | |
- name: Upload failure testdata | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: testdata-fail | |
path: "**/testdata/**/*.png" | |
- name: Update coverage report | |
uses: ncruces/go-coverage-report@v0 | |
with: | |
coverage-file: cover.out | |
if: github.event_name == 'push' |