.rhel-openssl-backend:
  extends:
    - .fail_if_coredump_generated
  before_script:
    - >
      sudo yum -y -q  install
      autoconf automake device-mapper-devel gcc gettext-devel json-c-devel
      libblkid-devel libpwquality-devel libselinux-devel libssh-devel libtool
      libuuid-devel make popt-devel libsepol-devel nc openssh-clients passwd
      pkgconfig sharutils sshpass tar uuid-devel vim-common device-mapper
      expect gettext git jq keyutils openssl-devel openssl gem > /dev/null 2>&1
    - sudo gem install asciidoctor
    - sudo -E git clean -xdf
    - ./autogen.sh
    - ./configure --enable-fips --enable-pwquality --with-crypto_backend=openssl --enable-asciidoc

# non-FIPS jobs

test-main-commit-rhel8:
  extends:
    - .rhel-openssl-backend
  tags:
    - libvirt
    - cryptsetup-rhel-8
  stage: test
  interruptible: true
  variables:
    DISTRO: cryptsetup-rhel-8
    RUN_SSH_PLUGIN_TEST: "1"
  rules:
    - if: $RUN_SYSTEMD_PLUGIN_TEST != null
      when: never
    - if: $CI_PROJECT_PATH != "cryptsetup/cryptsetup"
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /v2\..\.x$/
  script:
    - make -j
    - make -j -C tests check-programs
    - sudo -E make check

test-main-commit-rhel9:
  extends:
    - .rhel-openssl-backend
  tags:
    - libvirt
    - cryptsetup-rhel-9
  stage: test
  interruptible: true
  variables:
    DISTRO: cryptsetup-rhel-9
    RUN_SSH_PLUGIN_TEST: "1"
  rules:
    - if: $RUN_SYSTEMD_PLUGIN_TEST != null
      when: never
    - if: $CI_PROJECT_PATH != "cryptsetup/cryptsetup"
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /v2\..\.x$/
  script:
    - make -j
    - make -j -C tests check-programs
    - sudo -E make check

# FIPS jobs

test-main-commit-rhel8-fips:
  extends:
    - .rhel-openssl-backend
  tags:
    - libvirt
    - cryptsetup-rhel-8-fips
  stage: test
  interruptible: true
  variables:
    DISTRO: cryptsetup-rhel-8-fips
    RUN_SSH_PLUGIN_TEST: "1"
  rules:
    - if: $RUN_SYSTEMD_PLUGIN_TEST != null
      when: never
    - if: $CI_PROJECT_PATH != "cryptsetup/cryptsetup"
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /v2\..\.x$/
  script:
    - sudo fips-mode-setup --check || exit 1
    - make -j
    - make -j -C tests check-programs
    - sudo -E make check

test-main-commit-rhel9-fips:
  extends:
    - .rhel-openssl-backend
  tags:
    - libvirt
    - cryptsetup-rhel-9-fips
  stage: test
  interruptible: true
  allow_failure: true
  variables:
    DISTRO: cryptsetup-rhel-9-fips
    RUN_SSH_PLUGIN_TEST: "1"
  rules:
    - if: $RUN_SYSTEMD_PLUGIN_TEST != null
      when: never
    - if: $CI_PROJECT_PATH != "cryptsetup/cryptsetup"
      when: never
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH =~ /v2\..\.x$/
  script:
    - sudo fips-mode-setup --check || exit 1
    - make -j
    - make -j -C tests check-programs
    - sudo -E make check
