diff options
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r-- | .gitlab-ci.yml | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..22bdad8 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,85 @@ +stages: + - Package + - Build + - Test + - Release + +Tarball: + stage: Package + image: alpine:latest + before_script: + - apk add --no-cache coreutils git make perl + script: + - git submodule sync + - git submodule update --init --recursive + - bin/mkrelease.sh "$CI_COMMIT_REF_NAME" + - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + artifacts: + paths: + - work/release + +Rakudo Star: + stage: Build + image: alpine:latest + before_script: + - apk add --no-cache coreutils bash build-base git openssl-dev perl readline-dev + - bin/mkchecksum.sh "work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + - mkdir -p "$CI_PROJECT_DIR/work/build" + - cd -- "$CI_PROJECT_DIR/work/build" + - tar xzf "$CI_PROJECT_DIR/work/release/rakudo-star-$CI_COMMIT_REF_NAME.tar.gz" + script: + - cd -- "rakudo-star-$CI_COMMIT_REF_NAME" + - perl Configure.pl --prefix="$CI_PROJECT_DIR/work/install" --backend=moar --gen-moar --make-install + artifacts: + paths: + - work/build + - work/install + +Rakudo Test: + stage: Test + image: alpine:latest + before_script: + - apk add --no-cache build-base perl + - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" + script: + - make rakudo-test + +Rakudo Spectest: + stage: Test + image: alpine:latest + allow_failure: true + before_script: + - apk add --no-cache build-base git perl + - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" + script: + - make rakudo-spectest + +Debug Test: + stage: Test + image: alpine:latest + before_script: + - export PATH="$CI_PROJECT_DIR/work/install/bin:$CI_PROJECT_DIR/work/install/share/perl6/site/bin:$PATH" + - apk add --no-cache build-base git perl + script: + - sh "$CI_PROJECT_DIR/dev-bin/ci-debug.sh" + +Community Modules: + stage: Test + image: alpine:latest + before_script: + - export PATH="$CI_PROJECT_DIR/work/install/bin:$CI_PROJECT_DIR/work/install/share/perl6/site/bin:$PATH" + - apk add --no-cache build-base openssl-dev perl perl-test-harness-utils readline-dev + - cd -- "work/build/rakudo-star-$CI_COMMIT_REF_NAME" + script: + - make verbose-modules-test + +Docker: + stage: Release + image: docker:stable + services: + - docker:dind + before_script: + - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY + script: + - docker build --build-arg "VERSION=$CI_COMMIT_REF_NAME" -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" . + - docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" |