@@ -303,55 +303,35 @@ lint:
303303 # can be run sooner
304304 needs: ["fetch"]
305305
306-
307306test:
308307 stage: test
309308 script:
310309 - CURRENT_PATH=`pwd`
311310 - cd ~gitlab-runner/builds/${AK_WORKING_DIR}
312- # get list of modules to test
313- # add back --select-exclude ${EXCLUDE_MODULES:-none} from a path
314- # qu'est ce que ça fait ça ?
315- #- docker compose run odoo initdb ${DB_NAME} --cache-prefix ${CI_PROJECT_NAME:0:7}
316- # TODO: réflechir si on laisse ça ici ou dans le conteneur
317-
318- # list of all local-src modules
319- - ADDONS_TEST=$(manifestoo --select-addons-dir odoo/local-src list --separator=,)
320- - ADDONS_TEST_DEP=$(manifestoo --select-addons-dir odoo/local-src list-depends --separator=,)
321- - echo $ADDONS_TEST
322- - echo $ADDONS_TEST_DEP
323- # start from a clean state
324- - docker compose --profile db run --rm bedrock dropdb --force --if-exists ${BUILD_NAME}_test
325- # --labels traefik.enable=false in order to not mess with the review
326- # init db with dependencies of our modules
327- # we force PG port in order to bypass pgbouncer
328- - docker compose run --labels traefik.enable=false -e DB_NAME="${BUILD_NAME}_test" -e PGDATABASE="${BUILD_NAME}_test" -e "PGPORT=5432" -e "DB_PORT=5432" --rm odoo click-odoo-initdb -n ${BUILD_NAME}_test -m ${ADDONS_TEST_DEP} --cache-prefix ${CI_PROJECT_NAME:0:7}
329- # run the tests here
330- - docker compose run --labels traefik.enable=false -e DB_NAME="${BUILD_NAME}_test" -e PGDATABASE="${BUILD_NAME}_test" --rm --workdir /data/odoo/filestore odoo coverage run --include "/odoo/local-src/*" --branch /odoo/bin/odoo --stop-after-init -i ${ADDONS_TEST} --test-enable --workers=0
331- # display report in MR
332- - docker compose run --labels traefik.enable=false -e DB_NAME="${BUILD_NAME}_test" -e PGDATABASE="${BUILD_NAME}_test" --rm --workdir /data/odoo/filestore odoo coverage report
333- # export for the artifacts
334- - docker compose run --labels traefik.enable=false -e DB_NAME="${BUILD_NAME}_test" -e PGDATABASE="${BUILD_NAME}_test" --rm --workdir /data/odoo/filestore odoo coverage xml --skip-empty
335- # extract coverage report
336- - docker compose cp odoo:/data/odoo/filestore/coverage.xml coverage.xml
337- # move coverage report to accessible location from gitlab-ci
338- - cp coverage.xml ${CURRENT_PATH}/coverage.xml
311+ - cp .env .env-test
312+ - echo "ENABLE_TRAEFIK=false" >> .env-test
313+ - echo "COMPOSE_PROJECT_NAME=${BUILD_NAME}_test" >> .env-test
314+ - echo "PGDATABASE=${BUILD_NAME}_test" >> .env-test
315+ - docker compose --env-file .env-test kill
316+ - dropdb --force --if-exists ${BUILD_NAME}_test
317+ - docker compose --env-file .env-test run --rm odoo initdb ${BUILD_NAME}_test --cache-prefix ${CI_PROJECT_NAME:0:7}
318+ - docker compose --env-file .env-test run --rm odoo runtests
319+ - mv shared $CURRENT_PATH/
339320 rules:
340321 # Run tests in MR if there is no Skiptest tag
341322 - if: $AK_IS_MR == "true" && $CI_MERGE_REQUEST_LABELS !~ /Skiptest/
323+ # Always run test in major branch
324+ - if: $AK_IS_MAJOR_BRANCH == "true" && $AK_DO_OPENUPGRADE_MIGRATION != "true"
342325 needs:
343- # update_db do a docker compose stop, we don't want to be halted
344- # if this job start sooner
345- # optional true, let us the ability to run if update_db is cancelled
346- - job: "update_db"
347- optional: true
348- allow_failure: true
349- coverage: '/TOTAL(\W+\d+){5}\%/'
326+ - job: "build"
327+ coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
350328 artifacts:
329+ when: always
351330 reports:
331+ junit: shared/test_results/*.xml
352332 coverage_report:
353333 coverage_format: cobertura
354- path: coverage.xml
334+ path: shared/ coverage.xml
355335
356336# Run the container used for the review
357337review:
0 commit comments