aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Spek <p.spek@tyil.nl>2020-04-09 08:51:37 +0200
committerPatrick Spek <p.spek@tyil.nl>2020-04-09 18:28:23 +0200
commit731bddbede2392e6c88c3db28a2156d20ea26db7 (patch)
treed2abbb8ca0a37c45aba70d6ecd2567ea1de39110
parent426c44c27c20845b64958a46f47c29f687f42408 (diff)
Add a GitLab CI specification
-rw-r--r--.gitlab-ci.yml133
-rw-r--r--lib/actions/clean.bash2
-rw-r--r--lib/main.bash2
3 files changed, 135 insertions, 2 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..86f87d4
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,133 @@
+stages:
+ - Dist
+ - Install
+ - Test
+ - Docker
+
+Tarball:
+ stage: Dist
+ image: alpine:latest
+ before_script:
+ - apk add --no-cache bash coreutils curl git gnupg tar
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar fetch
+ - ./bin/rstar dist "$CI_COMMIT_SHA"
+ artifacts:
+ paths:
+ - dist
+
+Rakudo Star:
+ stage: Install
+ image: alpine:latest
+ before_script:
+ - apk add --no-cache bash gcc libc-dev make perl
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ - mkdir -p "$CI_PROJECT_DIR/opt"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar install -p "$CI_PROJECT_DIR/opt"
+ artifacts:
+ paths:
+ - "$CI_PROJECT_DIR/opt"
+
+QA:
+ stage: Test
+ image: alpine:latest
+ before_script:
+ - apk add --no-cache shellcheck
+ script:
+ - shellcheck bin/rstar
+ - find lib -type f -iname "*.*sh" | xargs shellcheck
+
+Rakudo Spectest:
+ stage: Test
+ image: alpine:latest
+ before_script:
+ - apk add --no-cache bash gcc libc-dev make perl
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar test -p "$CI_PROJECT_DIR/opt" spectest
+ allow_failure: true
+
+Community Modules:
+ stage: Test
+ image: alpine:latest
+ before_script:
+ - apk add --no-cache bash git
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar test -p "$CI_PROJECT_DIR/opt" modules
+ allow_failure: true
+
+Alpine:
+ stage: Docker
+ image: docker:stable
+ services:
+ - docker:dind
+ before_script:
+ - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
+ - apk add --no-cache bash
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" alpine
+ - docker push "$CI_REGISTRY_IMAGE:latest-alpine"
+
+Archlinux:
+ stage: Docker
+ image: docker:stable
+ services:
+ - docker:dind
+ before_script:
+ - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
+ - apk add --no-cache bash
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" archlinux
+ - docker push "$CI_REGISTRY_IMAGE:latest-archlinux"
+
+Debian:
+ stage: Docker
+ image: docker:stable
+ services:
+ - docker:dind
+ before_script:
+ - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
+ - apk add --no-cache bash
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" debian
+ - docker push "$CI_REGISTRY_IMAGE:latest-debian"
+
+CentOS:
+ stage: Docker
+ image: docker:stable
+ services:
+ - docker:dind
+ before_script:
+ - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
+ - apk add --no-cache bash
+ - cd "$(mktemp -d)"
+ - tar xzf "$CI_PROJECT_DIR/dist/rakudo-star-$CI_COMMIT_SHA.tar.gz"
+ - cd "rakudo-star-$CI_COMMIT_SHA"
+ script:
+ - ./bin/rstar sysinfo
+ - ./bin/rstar build-docker -l -n "$CI_REGISTRY_IMAGE" centos
+ - docker push "$CI_REGISTRY_IMAGE:latest-centos"
diff --git a/lib/actions/clean.bash b/lib/actions/clean.bash
index eec2736..dcf1e5a 100644
--- a/lib/actions/clean.bash
+++ b/lib/actions/clean.bash
@@ -2,7 +2,7 @@
action() {
local OPTIND
- local clean_source
+ local clean_src
while getopts ":s" opt
do
diff --git a/lib/main.bash b/lib/main.bash
index 9042324..8ee72dd 100644
--- a/lib/main.bash
+++ b/lib/main.bash
@@ -81,7 +81,7 @@ Usage:
rstar fetch
rstar install [-b backend] [-p prefix] [core] [modules]
rstar sysinfo
- rstar test [spectest] [modules]
+ rstar test [-p prefix] [spectest] [modules]
rstar is the entry point for all utilities to deal with Rakudo Star.