stages: - vetting - test - build - deploy Lint: image: - golang stage: vetting script: - go get golang.org/x/lint/golint - golint -set_exit_status ./... allow_failure: true Vet: image: - golang stage: vetting script: - go vet ./... Test: stage: test image: - golang script: - go test mytelegram251bot Build: stage: build image: - golang before_script: - go version - echo $CI_BUILD_REF - echo $CI_PROJECT_DIR script: - mkdir -p .cache - export GOPATH="$CI_PROJECT_DIR/.cache" - make artifacts: paths: - "bin/*" name: "mytelegram251bot-$CI_COMMIT_REF_NAME" Staging: stage: deploy image: - ruby script: - gem install dpl - dpl --provider=heroku --app=$HEROKU_APP_STAGING --api-key=$HEROKU_API_KEY environment: name: Staging only: - master Production: stage: deploy image: - ruby script: - gem install dpl - dpl --provider=heroku --app=$HEROKU_APP_PRODUCTION --api-key=$HEROKU_API_KEY environment: name: Production only: - master when: manual