diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..469bb83 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,48 @@ + +stages: # List of stages for jobs, and their order of execution + - build + - test + - deploy + - on_success + - on_failer + +before_script: + - git version + - go version + - go env -w GO111MODULE=on + - go env -w GOPROXY="https://goproxy.io,direct" + +build-job: # This job runs in the build stage, which runs first. + # build构建之前输出提示文字 + before_script: + - echo "开始对 $PROJECT_NAME 持续集成 build" + - mailer -c /root/mailer.toml -bodyPath /root/build.html -template {{PROJECT_NAME}}=$PROJECT_NAME,{{STATUS}}=开始构建 + # build构建之后输出提示文字 + after_script: + - echo "$PROJECT_NAME 持续集成 build 结束" + - mailer -c /root/mailer.toml -bodyPath /root/build.html -template {{PROJECT_NAME}}=$PROJECT_NAME,{{STATUS}}=构建结束 + + stage: build + script: + - echo "Compiling the code..." + - echo "Compile complete." + +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." + - 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."