81 lines
1.9 KiB
YAML
81 lines
1.9 KiB
YAML
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
|