aboutsummaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml85
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"