| # This program is free software; you can redistribute it and/or |
| # modify it under the terms of the GNU General Public |
| # License v2 as published by the Free Software Foundation. |
| # |
| # This program is distributed in the hope that it will be useful, |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| # General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public |
| # License along with this program; if not, write to the |
| # Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
| # Boston, MA 021110-1307, USA. |
| # |
| |
| image: docker:18.09.7 |
| |
| services: |
| - docker:18.09.7-dind |
| |
| # To enable or disable Kernel Build set BUILD_KERNEL: "1" or BUILD_KERNEL: "0" |
| # If you disable Kernel Build, make sure PREBUILT_KERNEL_ID points to previously built the kernel job id. |
| # To enable or disable image build update BUILD_IMAGE value to "1" or "0". |
| # If you disable Image Build, make sure PREBUILT_IMAGE_ID points to previously built rootfs job id. |
| |
| variables: |
| DOCKER_DRIVER: overlay2 |
| IMAGE_TAG: registry.gitlab.com/$CI_PROJECT_NAMESPACE/btrfs-progs:gitlab-ci |
| BUILD_KERNEL: "1" |
| PREBUILT_KERNEL_ID: "320566224" |
| BUILD_IMAGE: "1" |
| PREBUILT_IMAGE_ID: "288506168" |
| |
| stages: |
| - build |
| - btrfs-progs build |
| - test |
| |
| before_script: |
| - docker login --username $CI_REGISTRY_USER --password $CI_REGISTRY_PASSWORD $CI_REGISTRY |
| |
| docker build: |
| stage: build |
| script: |
| - cd ci/gitlab |
| - docker pull $IMAGE_TAG > /dev/null && echo "Downloaded image" || ( docker build -t $IMAGE_TAG . && docker push $IMAGE_TAG ) |
| |
| |
| kernel build: |
| before_script: |
| - apk add curl unzip |
| stage: build |
| script: |
| - if [ "$BUILD_KERNEL" == "1" ]; then |
| docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/kernel_build.sh; |
| else |
| curl -o bzImage.zip --location --header "JOB-TOKEN:$CI_JOB_TOKEN" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/jobs/$PREBUILT_KERNEL_ID/artifacts" && unzip bzImage.zip; |
| fi; |
| artifacts: |
| when: always |
| paths: |
| - bzImage |
| |
| |
| image build: |
| before_script: |
| - apk add curl unzip |
| stage: build |
| script: |
| - if [ "$BUILD_IMAGE" == "1" ]; then |
| docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/setup_image.sh; |
| else |
| curl -o qemu-image.img.zip --location --header "JOB-TOKEN:$CI_JOB_TOKEN" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/jobs/$PREBUILT_IMAGE_ID/artifacts" && unzip qemu-image.img.zip; |
| fi; |
| artifacts: |
| when: always |
| paths: |
| - qemu-image.img |
| |
| btrfs-progs build: |
| stage: btrfs-progs build |
| script: |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| artifacts: |
| expire_in: 1 week |
| when: always |
| paths: |
| - qemu-image.img |
| |
| cli tests: |
| stage: test |
| script: |
| - echo "./cli-tests.sh" > $PWD/cmd |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| - test -e "result" || exit 1 # If result doesn't exists, job failed. |
| artifacts: |
| when: always |
| paths: |
| - "*tests-results.txt" |
| |
| convert tests: |
| only: |
| - devel |
| stage: test |
| script: |
| - echo "./convert-tests.sh" > $PWD/cmd |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| - test -e "result" || exit 1 |
| artifacts: |
| when: always |
| paths: |
| - "*tests-results.txt" |
| |
| fsck tests: |
| stage: test |
| script: |
| - echo "./fsck-tests.sh" > $PWD/cmd |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| - test -e "result" || exit 1 |
| artifacts: |
| when: always |
| paths: |
| - "*tests-results.txt" |
| - error.log |
| |
| fuzz tests: |
| stage: test |
| script: |
| - echo "./fuzz-tests.sh" > $PWD/cmd |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| - test -e "result" || exit 1 |
| artifacts: |
| when: always |
| paths: |
| - "*tests-results.txt" |
| |
| misc tests: |
| stage: test |
| script: |
| - echo "./misc-tests.sh" > $PWD/cmd |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| - test -e "result" || exit 1 |
| artifacts: |
| when: always |
| paths: |
| - "*tests-results.txt" |
| |
| mkfs tests: |
| stage: test |
| script: |
| - echo "./mkfs-tests.sh" > $PWD/cmd |
| - docker run --cap-add SYS_PTRACE --cap-add sys_admin --privileged --device=/dev/kvm -v $PWD:/repo $IMAGE_TAG /repo/ci/gitlab/run_tests.sh |
| - test -e "result" || exit 1 |
| artifacts: |
| when: always |
| paths: |
| - "*tests-results.txt" |