# 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 - test - doc - deploy 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... This will take about 60 seconds." - echo "Code coverage is 90%" lint-test-job: # This job also runs in the test stage. stage: test # It can run at the same time as unit-test-job (in parallel). script: - echo "Linting code... This will take about 10 seconds." - echo "No lint issues found." doc-job: stage: doc needs: ["unit-test-job","lint-test-job"] image: erothejoker/docker-docfx:latest script: - docfx docfx_project/docfx.json artifacts: paths: - docs expire_in: 10 min # doc-push: # stage: deploy # image: python:3.6 # only: # - tags # before_script: # - 'which ssh-agent || ( apt-get update -qy && apt-get install openssh-client -qqy )' # - eval `ssh-agent -s` # - echo "${SSH_PRIVATE_KEY}" | tr -d '\r' | ssh-add - > /dev/null # add ssh key # - pip3 install -U Commitizen # install commitizen # - mkdir -p ~/.ssh # - chmod 700 ~/.ssh # - echo "$SSH_PUBLIC_KEY" >> ~/.ssh/id_rsa.pub # - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config' # - apt update # - apt upgrade # - apt install git-lfs # needs: ["doc-job"] # script: # - git remote set-url origin "${REPO_URL}" # git configuration # - git config --global user.email "${CI_EMAIL}" && git config --global user.name "${CI_USERNAME}" # - 'exists=`git show-ref refs/heads/doc` && if [ -n "$exists" ]; then git branch -D doc; fi' # - git checkout -b doc # - ls -la docs # - git add -A # execute auto bump and push to master # - git commit -m "Generate documentation base on commit ${CI_COMMIT_SHORT_SHA}" || echo "Nothing to commit" # - git pull origin doc || echo "No branch doc" # - git push origin doc:doc || echo "Nothing to push"