# Configuration for Gitlab-CI.
# Builds appear on https://gitlab.com/buildroot.org/buildroot/pipelines
# The .gitlab-ci.yml file is generated from .gitlab-ci.yml.in.
# It needs to be regenerated every time a defconfig is added, using
# "make .gitlab-ci.yml".

image: buildroot/base:20191027.2027

.check_base:
    rules:
        - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/ || $CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/'
          when: never
        - when: always

check-DEVELOPERS:
    extends: .check_base
    # get-developers should print just "No action specified"; if it prints
    # anything else, it's a parse error.
    # The initial ! is removed by YAML so we need to quote it.
    script:
        - "! utils/get-developers | grep -v 'No action specified'"

check-flake8:
    extends: .check_base
    before_script:
        # Help flake8 to find the Python files without .py extension.
        - find * -type f -name '*.py' > files.txt
        - find * -type f -print0 | xargs -0 file | grep 'Python script' | cut -d':' -f1 >> files.txt
        - sort -u files.txt | tee files.processed
    script:
        - python -m flake8 --statistics --count --max-line-length=132 $(cat files.processed)
    after_script:
        - wc -l files.processed

check-gitlab-ci.yml:
    extends: .check_base
    script:
        - mv .gitlab-ci.yml .gitlab-ci.yml.orig
        - make .gitlab-ci.yml
        - diff -u .gitlab-ci.yml.orig .gitlab-ci.yml

check-package:
    extends: .check_base
    script:
        - make check-package

.defconfig_base:
    script:
        - echo "Configure Buildroot for ${DEFCONFIG_NAME}"
        - make ${DEFCONFIG_NAME}
        - echo 'Build buildroot'
        - |
            make > >(tee build.log |grep '>>>') 2>&1 || {
                echo 'Failed build last output'
                tail -200 build.log
                exit 1
            }
    artifacts:
        when: always
        expire_in: 2 weeks
        paths:
            - .config
            - build.log
            - output/images/
            - output/build/build-time.log
            - output/build/packages-file-list.txt
            - output/build/*/.config

.defconfig:
    extends: .defconfig_base
    # Running the defconfigs for every push is too much, so limit to
    # explicit triggers through the API.
    rules:
        # For tags, create a pipeline.
        - if: '$CI_COMMIT_TAG'
        # For pipeline created by using a trigger token.
        - if: '$CI_PIPELINE_TRIGGERED'
        # For the branch or tag name named *-defconfigs, create a pipeline.
        - if: '$CI_COMMIT_REF_NAME =~ /^.*-defconfigs$/'
    before_script:
        - DEFCONFIG_NAME=${CI_JOB_NAME}

one-defconfig:
    extends: .defconfig_base
    rules:
        # For the branch or tag name named *-*_defconfigs, create a pipeline.
        - if: '$CI_COMMIT_REF_NAME =~ /^.*-.*_defconfig$/'
    before_script:
        - DEFCONFIG_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')

.runtime_test_base:
    # Keep build directories so the rootfs can be an artifact of the job. The
    # runner will clean up those files for us.
    # Multiply every emulator timeout by 10 to avoid sporadic failures in
    # elastic runners.
    script:
        - echo "Starting runtime test ${TEST_CASE_NAME}"
        - ./support/testing/run-tests -o test-output/ -d test-dl/ -k --timeout-multiplier 10 ${TEST_CASE_NAME}
    artifacts:
        when: always
        expire_in: 2 weeks
        paths:
            - test-output/*.log
            - test-output/*/.config
            - test-output/*/images/*

.runtime_test:
    extends: .runtime_test_base
    # Running the runtime tests for every push is too much, so limit to
    # explicit triggers through the API.
    rules:
        # For tags, create a pipeline.
        - if: '$CI_COMMIT_TAG'
        # For pipeline created by using a trigger token.
        - if: '$CI_PIPELINE_TRIGGERED'
        # For the branch or tag name named *-runtime-tests, create a pipeline.
        - if: '$CI_COMMIT_REF_NAME =~ /^.*-runtime-tests$/'
    before_script:
        - TEST_CASE_NAME=${CI_JOB_NAME}

one-runtime_test:
    extends: .runtime_test_base
    rules:
        - if: '$CI_COMMIT_REF_NAME =~ /^.*-tests\..*$/'
    before_script:
        - TEST_CASE_NAME=$(echo ${CI_COMMIT_REF_NAME} | sed -e 's,^.*-,,g')
