name: Test Valgrind # like the Docker tests, but running valgrind only on *.c/*.h changes. on: push: branches: - "**" paths: - ".github/workflows/test-valgrind.yml" - "**.c" - "**.h" pull_request: paths: - ".github/workflows/test-valgrind.yml" - "**.c" - "**.h" workflow_dispatch: permissions: contents: read concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: docker: [ ubuntu-22.04-jammy-amd64-valgrind, ] dockerTag: [main] name: ${{ matrix.docker }} steps: - uses: actions/checkout@v4 - name: Build system information run: python3 .github/workflows/system-info.py - name: Docker pull run: | docker pull pythonpillow/${{ matrix.docker }}:${{ matrix.dockerTag }} - name: Build and Run Valgrind run: | # The Pillow user in the docker container is UID 1000 sudo chown -R 1000 $GITHUB_WORKSPACE docker run --name pillow_container -e "PILLOW_VALGRIND_TEST=true" -v $GITHUB_WORKSPACE:/Pillow pythonpillow/${{ matrix.docker }}:${{ matrix.dockerTag }} sudo chown -R runner $GITHUB_WORKSPACE