Newer
Older
- test-basic
- test-additional-v1.5
- test-additional-v1.6
.global_settings: &global_settings_pull
rules:
- if: $CI_PIPELINE_SOURCE == "external_pull_request_event"
.global_settings: &global_settings_comprehensive
- if: $CI_COMMIT_BRANCH == "master"
- if: $CI_COMMIT_BRANCH == "develop"
- if: $CI_COMMIT_TAG =~ /^v/
.global_testing_v15: &global_testing_v15
variables:
JULIA_VER: "v1.5.3"
.global_testing_v16: &global_testing_v16
variables:
JULIA_VER: "v1.6.0"
# platform-specific test settings
# --------------------------------------
.global_testing_linux: &global_testing_linux
tags:
- slave01
- $ARTENOLIS_SOFT_PATH/julia/$JULIA_VER/bin/julia --inline=yes --check-bounds=yes --color=yes --project=@. -e 'import Pkg; Pkg.test(; coverage = true)'
.global_testing_win8: &global_testing_win8
tags:
- windows8
.global_testing_win10: &global_testing_win10
tags:
- windows10
.global_testing_win: &global_testing_win
script:
- $global:LASTEXITCODE = 0 # Note the global prefix.
- Invoke-Expression $Env:ARTENOLIS_SOFT_PATH"\julia\"$Env:JULIA_VER"\bin\julia --inline=yes --check-bounds=yes --color=yes --project=@. -e 'import Pkg; Pkg.test(; coverage = true)'"
- $ARTENOLIS_SOFT_PATH/julia/$JULIA_VER/Contents/Resources/julia/bin/julia --inline=yes --check-bounds=yes --color=yes --project=@. -e 'import Pkg; Pkg.test(; coverage = true)'
# Check the format of the code
# --------------------------------------
format:
stage: test-basic
image: docker:19.03.13
tags:
- privileged
services:
- name: docker:19.03.13-dind
command: ["--tls=false", "--mtu=1458", "--registry-mirror", "https://docker-registry.lcsb.uni.lu"]
before_script:
- docker login -u $CI_USER_NAME -p $GITLAB_ACCESS_TOKEN $CI_REGISTRY
- |
docker run -v "$PWD":/project $CI_REGISTRY/r3/docker/julia-custom julia -e 'using JuliaFormatter; format("/project", verbose=true);'
- |
if [ `docker run -i -v "$PWD":/git alpine/git status -s | wc -l` -ne 0 ] ; then
GITHUB_COMMENT=":red_square: Commit ${CI_COMMIT_SHORT_SHA} requires formatting!\
"$'\n```\n'"`docker run -i -v \"$PWD\":/git alpine/git diff --stat`"$'\n```'
GITHUB_COMMENT=":green_circle: Commit ${CI_COMMIT_SHORT_SHA} is formatted properly."
- |
export GITHUB_TOKEN="${GITHUB_ACCESS_TOKEN_FORMATTER}"
export GITHUB_OWNER="lcsb-biocore"
export GITHUB_REPO="cobrexa.jl"
export GITHUB_COMMENT_TYPE=pr
export GITHUB_PR_ISSUE_NUMBER="${CI_EXTERNAL_PULL_REQUEST_IID}"
export GITHUB_COMMENT_FORMAT=""
-e GITHUB_TOKEN \
-e GITHUB_OWNER \
-e GITHUB_REPO \
-e GITHUB_COMMENT_TYPE \
-e GITHUB_PR_ISSUE_NUMBER \
-e GITHUB_COMMENT_FORMAT \
-e GITHUB_COMMENT \
cloudposse/github-commenter
<<: *global_settings_pull
# Documentation history
# --------------------------------------
image: docker:19.03.13
tags:
- privileged
command: ["--tls=false", "--mtu=1458", "--registry-mirror", "https://docker-registry.lcsb.uni.lu"]
before_script:
- docker login -u $CI_USER_NAME -p $GITLAB_ACCESS_TOKEN $CI_REGISTRY
- docker run -v "$PWD":/visualization $CI_REGISTRY/r3/docker/gource
paths: ['output.gif']
<<: *global_settings_comprehensive
# Documentation tests
# --------------------------------------
doc-tests:v1.6:
stage: documentation
image: $CI_REGISTRY/r3/docker/julia-custom
script:
- julia --project=@. -e 'import Pkg; Pkg.instantiate();'
- julia --project=@. --color=yes test/doctests.jl
<<: *global_settings_pull
# Deploy the documentation
# --------------------------------------
pages:
stage: documentation
dependencies:
- generator:gource
image: $CI_REGISTRY/r3/docker/julia-custom
script:
# resolve and build packages from the docs/Project.toml file
- julia --project=docs -e 'using Pkg; Pkg.resolve(); Pkg.develop(PackageSpec(path=pwd())); Pkg.instantiate();'
# deploy doc (without git history)
# move to the directory picked up by Gitlab pages (with git history)
- mv docs/build public
<<: *global_settings_comprehensive
# Test Docker run with Julia v1.6
# --------------------------------------
docker:v1.6:
stage: test-basic
image: $CI_REGISTRY/r3/docker/julia-custom
script:
- julia --check-bounds=yes --inline=yes --project=@. -e "import Pkg; Pkg.test(; coverage = true)"
after_script:
- julia --project=test/coverage test/coverage/coverage-summary.jl
<<: *global_settings_pull
# Test Julia v1.5
# --------------------------------------
<<: *global_settings_comprehensive
<<: *global_settings_comprehensive
<<: *global_settings_comprehensive
<<: *global_settings_comprehensive
# Test Julia v1.6
# --------------------------------------
linux:v1.6:
stage: test-additional-v1.6
needs: ["linux:v1.5"]
<<: *global_settings_comprehensive
<<: *global_testing_v16
<<: *global_testing_linux
windows10:v1.6:
stage: test-additional-v1.6
needs: ["windows10:v1.5"]
<<: *global_settings_comprehensive
<<: *global_testing_v16
<<: *global_testing_win10
<<: *global_testing_win
windows8:v1.6:
stage: test-additional-v1.6
needs: ["windows8:v1.5"]
<<: *global_settings_comprehensive
<<: *global_testing_v16
<<: *global_testing_win8
<<: *global_testing_win
mac:v1.6:
stage: test-additional-v1.6
needs: ["mac:v1.5"]
<<: *global_settings_comprehensive

Laurent Heirendt
committed
# Trigger test pipelines in external repo
# --------------------------------------
trigger:
- curl --silent --output /dev/null -X POST -F token=$EXTERNAL_REPO_TOKEN -F ref=$EXTERNAL_REPO_BRANCH $EXTERNAL_REPO
<<: *global_settings_comprehensive