Skip to content
Snippets Groups Projects
Forked from FAST / SpeechDatasets.jl
24 commits ahead of the upstream repository.
.gitlab-ci.yml 6.52 KiB
image: julia:1.9
stages:
  - test
  - build-docs
  - deploy
  - build-badges
  - deploy-badges

variables:
  FAILED: "echo \"failed\" > .status"
  PASSED: "echo \"passed\" > .status"
  WRITE_ENV: "echo \"$${PREFIX}_STATUS=$$(cat .status)\" >> .env"

# Rule to run a job only on merge request on main
.only-on-merge-request:
  rules:
    - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"

# Run a job only when a version tag is pushed on main branch
.only-vtag-on-main:
  rules:
    - if: $CI_COMMIT_TAG =~ /^v\d+.\d+.\d+-?.*$/ # ensure it corresponds to a version
# $CI_COMMIT_BRANCH == "main"

# Run unit tests if provided on merge request 
tests:
  stage: test
  variables:
    SDL_VIDEODRIVER: "dummy"
    SDL_AUDIODRIVER: "disk"
    PREFIX: "TEST" # badge prefix
  extends: 
    - .dotenv # share job status in .env
    - .only-on-merge-request
  before_script:
   - eval "$FAILED" # set status to failed by default
   - apt update -y
   - apt install -y libasound2-dev
   - |
     julia -e '
      using Pkg
      pkg"registry add https://github.com/JuliaRegistries/General"
      pkg"registry add https://gitlab.lisn.upsaclay.fr/PTAL/Registry"
      Pkg.activate(; temp = true)
      Pkg.resolve()
      Pkg.precompile()'
  script:
    - |
      if [ -f test/runtests.jl ]; then
        julia --project=./ -e 'using Pkg; Pkg.test()'
      else
        echo "[warning] no tests provided"
      fi
    - eval "$PASSED" # set status to passed


# Build documentation on merge request
build-docs:
  stage: build-docs    
  extends: 
    - .dotenv # share job status in .env
    - .only-on-merge-request
  variables:
    SDL_VIDEODRIVER: "dummy"
    SDL_AUDIODRIVER: "disk"
    PREFIX: "BUILD_DOCS" # badge prefix
  before_script:
    - eval "$FAILED" # set status to failed by default
    - apt update -y
    - apt install -y libasound2-dev