Skip to content

ci: Update github-projects-ventilation.yml #38854

ci: Update github-projects-ventilation.yml

ci: Update github-projects-ventilation.yml #38854

Workflow file for this run

name: Pull Request checks
on:
pull_request:
# we can't do that, because status are required
# see https://stackoverflow.com/questions/66751567/return-passing-status-on-github-workflow-when-using-paths-ignore
# paths-ignore:
# - "**.md"
# - ".github/CODEOWNERS"
# - ".github/PULL_REQUEST_TEMPLATE.md"
# - ".editorconfig"
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# those are just until we de-activate their mandatory
gulp:
name: Gulp
runs-on: ubuntu-latest
steps:
- name: just finish
run: exit 0
dev:
name: Dev
runs-on: ubuntu-latest
steps:
- name: just finish
run: exit 0
lint:
name: 🕵️‍♀️ NPM lint
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/setup-node@v4
with:
node-version: '12.x'
- name: gulp build
run: make front_build
- name: lint
run: make front_lint
# this will build the docker image and upload as an artifact for following jobs
build_backend:
name: 🏗 Build backend dev image for tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# needs depth to run git log below
fetch-depth: 50
- name: build
run: make build container=backend
- name: push backend image as artifact
uses: ishworkh/docker-image-artifact-upload@v1
with:
image: "openfoodfacts-server/backend:dev"
- name: Rebuild taxonomies
# here we first restore dates from git for taxonomies to avoid build them all
# see https://stackoverflow.com/a/60984318/2886726
run: |
git ls-files taxonomies/ | xargs -I{} git log -1 --date=format:%Y%m%d%H%M.%S --format='touch -t %ad "{}"' "{}" | bash
make build_taxonomies GITHUB_TOKEN="${{ secrets.TAXONOMY_CACHE_GITHUB_TOKEN }}"
check_perl:
name: 🐪 Check Perl
needs: build_backend
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
# we need origin/main to have comparison linting work !
- name: Fetch origin/main
run: |
git remote set-branches --add origin main
git fetch origin
- name: Download backend image from artifacts
uses: ishworkh/docker-image-artifact-download@v1
with:
image: "openfoodfacts-server/backend:dev"
- name: ensure branch origin/main is fetched
run: git fetch --no-tags --prune --progress --no-recurse-submodules --depth=5 origin main
- name: build taxonomies (should use cache)
run: make build_taxonomies GITHUB_TOKEN="${{ secrets.TAXONOMY_CACHE_GITHUB_TOKEN }}"
- name: check taxonomies
run: make check_taxonomies
- name: check perltidy
run: make check_perltidy
- name: check perlcritic
run: make check_critic
- name: check perl
run: make check_perl
tests:
name: 🐪 Perl unit tests
needs: build_backend
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Download backend image from artifacts
uses: ishworkh/docker-image-artifact-download@v1
with:
image: "openfoodfacts-server/backend:dev"
- name: tests
run: |
make codecov_prepare
make COVER_OPTS='-e HARNESS_PERL_SWITCHES="-MDevel::Cover=+ignore,tests/"' tests GITHUB_TOKEN="${{ secrets.TAXONOMY_CACHE_GITHUB_TOKEN }}"
- name: generate coverage results
# even if tests failed
if: always()
run: |
make coverage_txt
make codecov
- uses: codecov/codecov-action@v4
if: always()
with:
files: cover_db/codecov.json
tests_dev:
name: 🧪 Test make dev
needs: build_backend # only to avoid building taxonomies
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Download backend image from artifacts
uses: ishworkh/docker-image-artifact-download@v1
with:
image: "openfoodfacts-server/backend:dev"
- name: set right UID and GID in .envrc
run: |
rm -f .envrc
echo "export USER_UID=$(id -u)" >> .envrc
echo "export USER_GID=$(id -g)" >> .envrc
- name: Test make dev
run: |
make dev
make status
- name: Test all is running
run: make livecheck || ( tail -n 300 logs/apache2/*error*log; docker compose logs; false )
- name: test clean
run: make hdown