diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..07752e0 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,48 @@ +variables: + DOCKER_IMAGE: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:20.10.8-dind + DOCKER_HOST: tcp://docker:2375 + DOCKER_TCP_PORT: 2375 + DOCKER_TLS_CERTDIR: "" + LINTTEST_IMAGE: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/golangci/golangci-lint:v1.42.1 + REGISTRY_IMAGE_LATEST: ${CI_REGISTRY_IMAGE}:latest + REGISTRY_IMAGE_TAGGED: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG} + +services: + - name: ${DOCKER_IMAGE} + alias: docker + +stages: + - test + - release + +lint: + stage: test + tags: + - docker + image: ${LINTTEST_IMAGE} + script: + - golangci-lint run + +build_master_image: + stage: release + only: + - master + tags: + - docker + image: ${DOCKER_IMAGE} + script: + - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + - docker build --pull -t ${REGISTRY_IMAGE_LATEST} --build-arg CI_COMMIT_TAG=${CI_COMMIT_TAG} --build-arg CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME} --build-arg CI_COMMIT_SHA=${CI_COMMIT_SHA} --build-arg CI_PROJECT_NAME=${CI_PROJECT_NAME} . + - docker push ${REGISTRY_IMAGE_LATEST} + +build_tag_image: + stage: release + only: + - tags + tags: + - docker + image: ${DOCKER_IMAGE} + script: + - docker login -u ${CI_REGISTRY_USER} -p ${CI_REGISTRY_PASSWORD} ${CI_REGISTRY} + - docker build -t ${REGISTRY_IMAGE_TAGGED} --build-arg CI_COMMIT_TAG=${CI_COMMIT_TAG} --build-arg CI_COMMIT_REF_NAME=${CI_COMMIT_REF_NAME} --build-arg CI_COMMIT_SHA=${CI_COMMIT_SHA} --build-arg CI_PROJECT_NAME=${CI_PROJECT_NAME} . + - docker push ${REGISTRY_IMAGE_TAGGED} diff --git a/README.md b/README.md index e69de29..3e125c2 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,21 @@ +# Periodicator + +A thing that do some things periodically. + +Initially created for periodic issues (or tasks) creation in Gitlab. + +## Installing + +There are several ways to install Periodicator. + +### Using binary release + +Head over releases page, grab your binary and configure your system to start binary using cron. + +### Using Docker image + +To be written :). + +## Configuring + +To be written :).