Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.85 KiB
---

# global settings
image: alpine:latest
after_script:
  - .gitlab-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-*/*
  before_script:
    - apk -q add python3
  script:
    - .gitlab-ci/check_devices_in_wiki.py --booting

# testcases linting
testcases-linting:
  stage: lint
  <<: *only-default
  only:
    refs:
      - merge_requests
    changes:
      - .gitlab-ci/*
      - .gitlab-ci/*/*
  before_script:
    - apk -q add py-flake8
  script:
    - flake8 --ignore E501,F401,E722,W504,W605

# shellcheck
shellcheck:
  stage: lint
  <<: *only-default
  image: alpine:edge
  before_script:
    - apk -q upgrade
    - apk -q add shellcheck
  script:
    - .gitlab-ci/shellcheck.sh

# aports checks (generic)
aports-static:
  stage: lint
  <<: *only-default
  before_script:
    - wget "https://gitlab.com/postmarketOS/ci-common/-/raw/master/install_pmbootstrap.sh"