image: "golang:latest" variables: # Tell 'docker:dind' to enable TLS (recommended) # and generate certificates in the specified directory. DOCKER_TLS_CERTDIR: "/certs" stages: - test - build test-lint: stage: test script: - go install github.com/client9/misspell/cmd/misspell@latest - find . -type f -not -path "./webroot/assets" | grep -v "models/.*_testdata.*.go" | xargs misspell -error - ./.ci/check-gofmt - ./.ci/check-testfiles build-linux: stage: build except: - tags - master - main script: # build app with version - go install - mv "/go/bin/$CI_PROJECT_NAME" "$CI_PROJECT_DIR/$CI_PROJECT_NAME" artifacts: paths: - config_example.toml - "$CI_PROJECT_NAME" build-docker-latest: stage: build image: docker:latest services: - docker:dind only: - main - master script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --build-arg VERSION=$CI_COMMIT_TAG -t $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:latest build-docker-release: stage: build image: docker:latest services: - docker:dind only: - tags script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build --build-arg VERSION=$CI_COMMIT_TAG -t $CI_REGISTRY_IMAGE:CI_COMMIT_TAG -t $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG%\.[0-9]*} -t $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG%\.[0-9]*\.[0-9]*} . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG - docker push $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG%\.[0-9]*} - docker push $CI_REGISTRY_IMAGE:${CI_COMMIT_TAG%\.[0-9]*\.[0-9]*} build-release: stage: build only: - tags script: # build app with version - go install - mv "/go/bin/$CI_PROJECT_NAME" "$CI_PROJECT_DIR/$CI_PROJECT_NAME" artifacts: paths: - config_example.toml - "$CI_PROJECT_NAME" expire_in: never