diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 649e3e84832e46e250ff742c8012f0633db20ca5..95b3ba1d76d72dc37caa5f0a3ae8dfc298cbe687 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,45 +2,33 @@ # 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 +# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/C++.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 +# use the official gcc image, based on debian +# can use versions as well, like gcc:5.2 +# see https://hub.docker.com/_/gcc/ -stages: # List of stages for jobs, and their order of execution - - build - - test - - deploy +image: gcc -build-job: # This job runs in the build stage, which runs first. +build: stage: build + # instead of calling g++ directly you can also use some build toolkit like make + # install the necessary build tools when needed + before_script: + - mkdir bin + - mkdir saves script: - - echo "Compiling the code..." - - echo "Compile complete." - make + artifacts: + paths: + - bin/ + # depending on your build setup it's most likely a good idea to cache outputs to reduce the build time + # cache: + # paths: + # - "*.o" -unit-test-job: # This job runs in the test stage. - stage: test # It only starts when the job in the build stage completes successfully. +# run tests using the binary built before +test: + stage: test script: - - echo "Running unit tests... This will take about 60 seconds." - - sleep 60 - - 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." - - sleep 10 - - echo "No lint issues found." - -deploy-job: # This job runs in the deploy stage. - stage: deploy # It only runs when *both* jobs in the test stage complete successfully. - script: - - echo "Deploying application..." - - echo "Application successfully deployed." + - echo "Dummy Testing"