# maintained by q3k, built using docker/build-env
image: "registry.k0.hswaw.net/q3k/card10-build-env:20190729-231409Z-635fb98"

build:
    stage: build
    script:
        - ./bootstrap.sh
        - ninja -C build/
        - arm-none-eabi-size build/bootloader/bootloader.elf build/epicardium/epicardium.elf build/pycardium/pycardium.elf
    only:
        - merge_requests
        - master

lint:
    stage: test
    image: "registry.k0.hswaw.net/q3k/card10-lint-env:20190728-233522Z-ded74f0-dirty"
    script:
        # Annoyatron is maintained by q3k. Its job is to serve MR comments that are friendlier than just a failing pipeline.
        #  source code: https://git.card10.badge.events.ccc.de/q3k/annoyatron/
        #  prod deployment: https://gerrit.hackerspace.pl/plugins/gitiles/hscloud/+/refs/heads/master/personal/q3k/annoyatron/
        # If this starts failing for any reason, just remove this curl ping.
        - curl --fail https://annoyatron-prod.q3k.org/ping/mr?mr=${CI_MERGE_REQUEST_IID}
        - git remote rm card10 || true # old gitlab runners might have this remote.
        - git fetch https://git.card10.badge.events.ccc.de/card10/firmware.git master:card10/master
        - git merge-base card10/master HEAD || ( echo "Your change needs to be rebased against current master."; exit 1; )
        - git diff --name-only --diff-filter=d card10/master...HEAD | xargs tools/code-style.sh
        - git diff --exit-code
    only:
        - merge_requests

pages:
    stage: deploy
    # maintaned by q3k, build using docker/deploy-env
    image: "registry.k0.hswaw.net/q3k/card10-deploy-env:20190725-112709Z-4c5d8e8"
    script:
        - export LD_LIBRARY_PATH=$(llvm-config --libdir)
        - echo $LD_LIBRARY_PATH
        - sphinx-build -b html Documentation/ Documentation/output/
        - mv Documentation/output/ public/
    artifacts:
        paths:
            - public/
    only:
        - master
