From 731bddbede2392e6c88c3db28a2156d20ea26db7 Mon Sep 17 00:00:00 2001 From: Patrick Spek Date: Thu, 9 Apr 2020 08:51:37 +0200 Subject: Add a GitLab CI specification --- .gitlab-ci.yml | 133 +++++++++++++++++++++++++++++++++++++++++++++++++ lib/actions/clean.bash | 2 +- lib/main.bash | 2 +- 3 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 .gitlab-ci.yml 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. -- cgit v1.1