e8a7926eb6
Check if users activated the 'Allow commits from members who can merge to the target branch' option in their MRs. Add the "only" parameter to each job in .gitlab.yml, so the pipeline can properly run in a "merge request specific context" and give us the environment variable that contains the MR ID.
99 lines
2.5 KiB
YAML
99 lines
2.5 KiB
YAML
---
|
|
|
|
# global settings
|
|
image: alpine:3.8
|
|
after_script:
|
|
- .gitlab-ci/move_logs.sh $CI_PROJECT_DIR
|
|
stages:
|
|
- first
|
|
- second
|
|
|
|
# defaults for "only"
|
|
# We need to run the CI jobs in a "merge request specific context", if CI is
|
|
# running in a merge request. Otherwise the environment variable that holds the
|
|
# merge request ID is not available. This means, we must set the "only"
|
|
# variable accordingly - and if we only do it for one job, all other jobs will
|
|
# not get executed. So have the defaults here, and use them in all jobs that
|
|
# should run on both the master branch, and in merge requests.
|
|
# https://docs.gitlab.com/ee/ci/merge_request_pipelines/index.html#excluding-certain-jobs
|
|
.only-default: &only-default
|
|
only:
|
|
- master
|
|
- merge_requests
|
|
- tags
|
|
|
|
# device documentation
|
|
wiki:
|
|
stage: first
|
|
<<: *only-default
|
|
before_script:
|
|
- apk -q add python3
|
|
script:
|
|
- .gitlab-ci/check_devices_in_wiki.py --booting
|
|
|
|
# static code analysis (shellcheck is not in Alpine, so we use Debian)
|
|
py-sh-static:
|
|
stage: first
|
|
<<: *only-default
|
|
image: python:3.6-slim-stretch
|
|
before_script:
|
|
- apt -q update >/dev/null
|
|
- apt -y install flake8 shellcheck >/dev/null
|
|
script:
|
|
- .gitlab-ci/static_code_analysis.sh
|
|
|
|
# aports checks (generic)
|
|
aports-static:
|
|
stage: first
|
|
<<: *only-default
|
|
before_script:
|
|
- .gitlab-ci/install_pmbootstrap.sh pytest
|
|
script:
|
|
- su pmos -c "pmbootstrap kconfig check"
|
|
- su pmos -c ".gitlab-ci/run_testcases.sh
|
|
-m 'not pmaports_upstream_compat'"
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- log.txt
|
|
- log_testsuite_pmaports.txt
|
|
- pmbootstrap.cfg
|
|
expire_in: 1 week
|
|
|
|
# MR settings
|
|
# (Checks for "Allow commits from members who can merge to the target branch")
|
|
mr-settings:
|
|
stage: first
|
|
only:
|
|
- merge_requests
|
|
before_script:
|
|
- apk -q add python3
|
|
script:
|
|
- .gitlab-ci/check_mr_settings.py
|
|
|
|
# aports checks (upstream compatibility)
|
|
aports-static-upstream:
|
|
stage: second
|
|
only:
|
|
- master@postmarketOS/pmaports
|
|
before_script:
|
|
- .gitlab-ci/install_pmbootstrap.sh pytest
|
|
script:
|
|
- su pmos -c ".gitlab-ci/run_testcases.sh
|
|
-m 'pmaports_upstream_compat'"
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- log.txt
|
|
- log_testsuite_pmaports.txt
|
|
- pmbootstrap.cfg
|
|
expire_in: 1 week
|
|
|
|
# build changed aports
|
|
aports-build:
|
|
stage: second
|
|
<<: *only-default
|
|
before_script:
|
|
- .gitlab-ci/install_pmbootstrap.sh git
|
|
script:
|
|
- PYTHONUNBUFFERED=1 su pmos -c ".gitlab-ci/build_changed_aports.py"
|