---
test:molecule:linux:
  stage: test
  image:
    name: megabytelabs/linux-molecule:latest
    entrypoint: ['']
  services:
    - docker:20.10.7-dind
  parallel:
    matrix:
      - OPERATING_SYSTEM: ArchLinux
      - OPERATING_SYSTEM: CentOS
      - OPERATING_SYSTEM: Debian
      - OPERATING_SYSTEM: Fedora
      - OPERATING_SYSTEM: Ubuntu
  rules:
    - if: $DO_CI == 'false'
      when: never
    - if: $CI_COMMIT_TITLE =~ /^(automation|chore).*/
      when: never
    - if: $CI_COMMIT_BRANCH == 'synchronize'
      when: never
    - if: $CI_COMMIT_BRANCH == 'test/linux'
    - if: $CI_PIPELINE_SOURCE == 'schedule' || $CI_PIPELINE_SOURCE == 'web'
    - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'master'
      changes:
        - main.yml
  needs: []
  variables:
    DOCKER_CERT_PATH: $DOCKER_TLS_CERTDIR/client
    DOCKER_HOST: tcp://docker:2376
    DOCKER_TLS_CERTDIR: /certs
    DOCKER_TLS_VERIFY: 1
    GIT_DEPTH: 1
  before_script:
    - find . -print0 | xargs -0 sudo chown crovax:crovax
    - |
      if [ "$CI_COMMIT_BRANCH" == 'test/linux' ]; then
        git pull origin master
        git push origin "$CI_COMMIT_BRANCH"
      fi
  script:
    - source "$HOME/.profile"
    - task environment -- dev
    - OPTIMIZED_IMAGE=false task ansible:test:molecule:docker:cli -- "$OPERATING_SYSTEM"
  artifacts:
    when: always
    reports:
      junit: molecule/.results/junit/*.xml
