Skip to content

Dockerfile.tests: Copy checkout and setup workflow #12

Dockerfile.tests: Copy checkout and setup workflow

Dockerfile.tests: Copy checkout and setup workflow #12

Workflow file for this run

name: CI
on:
push:
branches-ignore:
- translations
pull_request:
branches-ignore:
- translations
jobs:
build-tests-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- run: |
if echo "$GITHUB_BASE_REF-$GITHUB_HEAD_REF" | grep -Pqv '^[\\w-]+$'; then
echo 'Invalid branch name'
exit 1
fi
make -C docker config
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- uses: docker/build-push-action@v6
with:
context: .
file: docker/Dockerfile.tests
tags: metabrainz/musicbrainz-tests:${{ github.event_name == 'pull_request' && format('{0}-{1}', github.base_ref, github.head_ref) || github.ref_name }}
cache-from: type=gha
cache-to: type=gha,mode=max
push: true
js-perl-and-pgtap:
needs: build-tests-image
runs-on: ubuntu-latest
container:
image: metabrainz/musicbrainz-tests:${{ github.event_name == 'pull_request' && format('{0}-{1}', github.base_ref, github.head_ref) || github.ref_name }}
options: --user root --hostname mbtest
steps:
- run: |
/home/musicbrainz/musicbrainz-server/docker/musicbrainz-tests/run_js_perl_and_pgtap_tests.sh
- if: always()
uses: mikepenz/action-junit-report@v5
with:
report_paths: './junit_output/*.xml'
fail_on_failure: true
require_tests: true
selenium:
needs: build-tests-image
runs-on: ubuntu-latest
container:
image: metabrainz/musicbrainz-tests:${{ github.event_name == 'pull_request' && format('{0}-{1}', github.base_ref, github.head_ref) || github.ref_name }}
options: --user root --hostname mbtest
steps:
- run: |
/home/musicbrainz/musicbrainz-server/docker/musicbrainz-tests/run_selenium_tests.sh
- if: always()
uses: actions/upload-artifact@v4
with:
path: |
coverage
svlog
t/selenium/.sir-*.log
- if: always()
uses: mikepenz/action-junit-report@v5
with:
report_paths: './junit_output/*.xml'
fail_on_failure: true
require_tests: true