CI: Only run the CI on pull requests, and on the "main" branch

Previously, the actions were duplicated, due to the fact when developing
we often create feature branches and open pull requests.

This new setup requires us to open pull requests to trigger the CI.
This commit is contained in:
Alexis Métaireau 2024-10-17 16:53:42 +02:00
parent 03b3c9eba8
commit 2ba247e09c
No known key found for this signature in database
GPG key ID: C65C7A89A8FFC56E
4 changed files with 49 additions and 9 deletions

View file

@ -1,6 +1,6 @@
name: Build dev environments
on:
push:
pull_request:
schedule:
- cron: "0 0 * * *" # Run every day at 00:00 UTC.

View file

@ -1,6 +1,6 @@
name: Check branch conformity
on:
push:
pull_request:
jobs:
prevent-fixup-commits:

View file

@ -1,8 +1,9 @@
name: Tests
on:
push:
branches:
- main
pull_request:
branches: [main]
schedule:
- cron: "2 0 * * *" # Run every day at 02:00 UTC.
workflow_dispatch:
@ -24,7 +25,24 @@ concurrency:
cancel-in-progress: true
jobs:
should-run:
runs-on: ubuntu-latest
outputs:
run-workflow: ${{ steps.check.outputs.run-workflow }}
steps:
- id: check
run: |
if [[ "${{ github.event_name }}" == "pull_request" ]]; then
echo "run-workflow=true" >> $GITHUB_OUTPUT
elif [[ "${{ github.event_name }}" == "push" && "${{ github.ref }}" != "refs/heads/main" ]]; then
echo "run-workflow=true" >> $GITHUB_OUTPUT
else
echo "run-workflow=false" >> $GITHUB_OUTPUT
fi
run-lint:
needs: should-run
if: needs.should-run.outputs.run-workflow == 'true'
runs-on: ubuntu-latest
container:
image: debian:bookworm
@ -43,6 +61,8 @@ jobs:
# This is already built daily by the "build.yml" file
# But we also want to include this in the checks that run on each push.
build-container-image:
needs: should-run
if: needs.should-run.outputs.run-workflow == 'true'
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
@ -67,6 +87,8 @@ jobs:
python3 ./install/common/build-image.py
download-tessdata:
needs: should-run
if: needs.should-run.outputs.run-workflow == 'true'
name: Download and cache Tesseract data
runs-on: ubuntu-latest
steps:
@ -91,7 +113,10 @@ jobs:
windows:
runs-on: windows-latest
needs: download-tessdata
needs:
- download-tessdata
- should-run
if: needs.should-run.outputs.run-workflow == 'true'
env:
DUMMY_CONVERSION: 1
steps:
@ -121,7 +146,10 @@ jobs:
macOS:
name: "macOS (${{ matrix.arch }})"
runs-on: ${{ matrix.runner }}
needs: download-tessdata
needs:
- download-tessdata
- should-run
if: needs.should-run.outputs.run-workflow == 'true'
strategy:
matrix:
include:
@ -149,9 +177,12 @@ jobs:
run: poetry run make test
build-deb:
needs:
- should-run
- build-container-image
if: needs.should-run.outputs.run-workflow == 'true'
name: "build-deb (${{ matrix.distro }} ${{ matrix.version }})"
runs-on: ubuntu-latest
needs: build-container-image
strategy:
matrix:
include:
@ -221,7 +252,10 @@ jobs:
install-deb:
name: "install-deb (${{ matrix.distro }} ${{ matrix.version }})"
runs-on: ubuntu-latest
needs: build-deb
needs:
- build-deb
- should-run
if: needs.should-run.outputs.run-workflow == 'true'
strategy:
matrix:
include:
@ -277,7 +311,10 @@ jobs:
build-install-rpm:
name: "build-install-rpm (${{ matrix.distro }} ${{matrix.version}})"
runs-on: ubuntu-latest
needs: build-container-image
needs:
- build-container-image
- should-run
if: needs.should-run.outputs.run-workflow == 'true'
strategy:
matrix:
distro: ["fedora"]
@ -343,6 +380,8 @@ jobs:
needs:
- build-container-image
- download-tessdata
- should-run
if: needs.should-run.outputs.run-workflow == 'true'
strategy:
matrix:
include:

View file

@ -1,8 +1,9 @@
name: Scan latest app and container
on:
push:
branches:
- main
pull_request:
branches: [ main ]
schedule:
- cron: '0 0 * * *' # Run every day at 00:00 UTC.
workflow_dispatch: