# This file is a template, and might need editing before it works on your project. # To contribute improvements to CI/CD templates, please follow the Development guide at: # https://docs.gitlab.com/ee/development/cicd/templates.html # This specific template is located at: # https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml # This is a sample GitLab CI/CD configuration file that should run without any modifications. # It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, # it uses echo commands to simulate the pipeline execution. # # A pipeline is composed of independent jobs that run scripts, grouped into stages. # Stages run in sequential order, but jobs within stages run in parallel. # # For more information, see: https://docs.gitlab.com/ee/ci/yaml/index.html#stages stages: # List of stages for jobs, and their order of execution - build - test image: name: debian:stable-slim cache: key: build untracked: true policy: pull-push build-job: stage: build script: - echo "Installing environment..." - apt-get -y update - apt-get -y install python3 virtualenv python3-setuptools - virtualenv -p python3 ansible - source ansible/bin/activate - pip install ansible unit-test-job: # This job runs in the test stage. stage: test # It only starts when the job in the build stage completes successfully. script: - echo "Running unit tests..." - apt-get -y update - apt-get -y install python3 git - source ansible/bin/activate - ansible-galaxy install -r requirements.yml - echo $vault_lza_install_common > ${CI_BUILDS_DIR}lza_install_common.pass - echo $vault_lza_server_hardening > ${CI_BUILDS_DIR}/lza_server_hardening.pass - echo $vault_slub_osquery > ${CI_BUILDS_DIR}/slub_osquery.pass - echo $vault_lza_sanitytest > ${CI_BUILDS_DIR}/lza_sanitytest.pass - ansible-playbook site.yml -b -l localhost --vault-password-file ${CI_BUILDS_DIR}lza_install_common.pass ${CI_BUILDS_DIR}/lza_server_hardening.pass ${CI_BUILDS_DIR}/slub_osquery.pass ${CI_BUILDS_DIR}/lza_sanitytest.pass variables: ANSIBLE_ROLES_PATH: "${CI_BUILDS_DIR}/${CI_PROJECT_PATH}/"