Adjust all CI scripts that make use of .ci/common.py to 'pmbootstrap ci'. Move all scripts that are not direct entry points to running CI scripts to .ci/lib. Comment out the dtb check, as it is failing. Apparently it didn't run properly before. Let's fix this after this CI change is done.
181 lines
3.8 KiB
YAML
181 lines
3.8 KiB
YAML
---
|
|
|
|
# global settings
|
|
image: alpine:latest
|
|
after_script:
|
|
- .ci/move_logs.sh $CI_PROJECT_DIR
|
|
stages:
|
|
- lint
|
|
- build
|
|
|
|
# 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: lint
|
|
<<: *only-default
|
|
only:
|
|
refs:
|
|
- merge_requests
|
|
changes:
|
|
- device/*/device-*/*
|
|
script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
- .ci/wiki.sh
|
|
|
|
# testcases linting
|
|
flake8:
|
|
stage: lint
|
|
<<: *only-default
|
|
only:
|
|
refs:
|
|
- merge_requests
|
|
changes:
|
|
- .ci/*
|
|
- .ci/*/*
|
|
before_script:
|
|
- apk -q add py-flake8
|
|
script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
- .ci/flake8.sh
|
|
|
|
# shellcheck and various grep checks
|
|
shellcheck-grep:
|
|
stage: lint
|
|
<<: *only-default
|
|
image: alpine:edge
|
|
script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
- .ci/shellcheck.sh
|
|
- .ci/grep.sh
|
|
|
|
editor-config:
|
|
stage: lint
|
|
<<: *only-default
|
|
image: alpine:edge
|
|
script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
- .ci/ec.sh
|
|
|
|
# aports checks (generic)
|
|
pytest-commits:
|
|
stage: lint
|
|
<<: *only-default
|
|
script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
- .ci/pytest.sh
|
|
- .ci/commits.sh
|
|
artifacts:
|
|
when: on_failure
|
|
paths:
|
|
- log.txt
|
|
- log_testsuite_pmaports.txt
|
|
- pmbootstrap.cfg
|
|
expire_in: 1 week
|
|
|
|
distfile-check:
|
|
stage: lint
|
|
<<: *only-default
|
|
before_script:
|
|
- apk -q add make findutils
|
|
- wget "https://gitlab.com/postmarketOS/ci-common/-/archive/master/ci-common-master.tar.bz2"
|
|
- tar -xf ci-common-master.tar.bz2
|
|
- mv ci-common-master/distfile-check/*.sh ci-common-master/distfile-check/Makefile .
|
|
- rm -r ci-common-master ci-common-master.tar.bz2
|
|
script:
|
|
- make -j999
|
|
|
|
# APKBUILD linting
|
|
aport-lint:
|
|
stage: lint
|
|
script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
- .ci/apkbuild-lint.sh
|
|
only:
|
|
- merge_requests
|
|
allow_failure: true
|
|
|
|
# kernel kconfig check
|
|
kernel-kconfig:
|
|
stage: lint
|
|
only:
|
|
refs:
|
|
- master
|
|
- merge_requests
|
|
changes:
|
|
- device/*/linux-*/config-*
|
|
- main/linux-*/config-*
|
|
before_script:
|
|
- wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"
|
|
- sh ./install_pmbootstrap.sh pytest
|
|
script:
|
|
- su pmos -c "pmbootstrap kconfig check"
|
|
|
|
# MR settings
|
|
# (Checks for "Allow commits from members who can merge to the target branch")
|
|
mr-settings:
|
|
stage: lint
|
|
only:
|
|
- merge_requests
|
|
before_script:
|
|
- apk -q add python3
|
|
script:
|
|
- wget -q "https://gitlab.com/postmarketOS/ci-common/-/raw/master/check_mr_settings.py"
|
|
- python3 ./check_mr_settings.py
|
|
|
|
# build changed aports
|
|
.build:
|
|
stage: build
|
|
<<: *only-default
|
|
before_script:
|
|
- .ci/lib/gitlab_prepare_ci.sh
|
|
after_script:
|
|
- cp -r /home/pmos/.local/var/pmbootstrap/packages/ packages/ || true
|
|
artifacts:
|
|
expire_in: 1 week
|
|
paths:
|
|
- packages/
|
|
timeout: 10 h
|
|
|
|
build-x86_64:
|
|
extends: .build
|
|
script:
|
|
- .ci/build-x86_64.sh
|
|
|
|
build-x86:
|
|
extends: .build
|
|
script:
|
|
- .ci/build-x86.sh
|
|
|
|
build-aarch64:
|
|
extends: .build
|
|
script:
|
|
- .ci/build-aarch64.sh
|
|
|
|
build-armv7:
|
|
extends: .build
|
|
script:
|
|
- .ci/build-armv7.sh
|
|
|
|
build-armhf:
|
|
extends: .build
|
|
script:
|
|
- .ci/build-armhf.sh
|
|
|
|
build-riscv64:
|
|
extends: .build
|
|
script:
|
|
- .ci/build-riscv64.sh
|