initial commit
This commit is contained in:
104
.drone.yml
Normal file
104
.drone.yml
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: default
|
||||
|
||||
environment:
|
||||
K8S_REPO_URL: ssh://git@git.novaloop.ch:8022/novaloop-mastodon/mastodon-k8s.git
|
||||
|
||||
image_pull_secrets:
|
||||
- docker-auth-config
|
||||
|
||||
.image-build: &image-build
|
||||
- echo building docker image "git.novaloop.ch/${DRONE_REPO}:${DRONE_COMMIT_SHA}"
|
||||
- mkdir -p /kaniko/.docker
|
||||
- echo "$DOCKER_AUTH_CONFIG" > /kaniko/.docker/config.json
|
||||
- >-
|
||||
/kaniko/executor
|
||||
--context .
|
||||
--build-arg "ARG_APP_VERSION=${DRONE_TAG}"
|
||||
--cache=true
|
||||
--compressed-caching=false
|
||||
--snapshotMode=redo
|
||||
--use-new-run
|
||||
--dockerfile "deployment/$ENVIRONMENT/$ENVIRONMENT.dockerfile"
|
||||
--destination "git.novaloop.ch/${DRONE_REPO}:${DRONE_COMMIT_SHA}"
|
||||
--destination "git.novaloop.ch/${DRONE_REPO}:${DRONE_TAG}"
|
||||
--destination "git.novaloop.ch/${DRONE_REPO}:latest"
|
||||
|
||||
.image-deploy: &image-deploy
|
||||
- echo deploy ${DRONE_TAG} of ${DRONE_REPO} to $ENVIRONMENT
|
||||
# configure git
|
||||
- mkdir -p ~/.ssh
|
||||
- echo "$DRONE_CI_SSH_KEY" > ~/.ssh/id_rsa
|
||||
- chmod 600 ~/.ssh/id_rsa
|
||||
- ssh-keyscan -p 8022 -H git.novaloop.ch > ~/.ssh/known_hosts
|
||||
- git config --global user.name ${DRONE_REPO}
|
||||
- git config --global user.email ${DRONE_REPO}@git.novaloop.ch
|
||||
|
||||
# clone k8s repo
|
||||
- git clone -b "$ENVIRONMENT" "$K8S_REPO_URL" k8s
|
||||
|
||||
# update manifests
|
||||
- cd "k8s/mastolists/overlays/$ENVIRONMENT"
|
||||
- kustomize edit set image "git.novaloop.ch/${DRONE_REPO}=git.novaloop.ch/${DRONE_REPO}:${DRONE_TAG}"
|
||||
- git add .
|
||||
- git commit -m "deploy ${DRONE_REPO_NAME} updating $ENVIRONMENT to ${DRONE_TAG}"
|
||||
- git push
|
||||
|
||||
steps:
|
||||
- name: build staging image
|
||||
image: gcr.io/kaniko-project/executor:v1.9.1-debug # without DIND requirement
|
||||
commands:
|
||||
*image-build
|
||||
environment:
|
||||
ENVIRONMENT: staging
|
||||
DOCKER_AUTH_CONFIG:
|
||||
from_secret: docker-auth-config
|
||||
when:
|
||||
ref:
|
||||
include:
|
||||
- refs/tags/v[0-9]*.[0-9]*.[0-9]*-* # glob pattern matching (limited https://pkg.go.dev/github.com/bmatcuk/doublestar?utm_source=godoc)
|
||||
|
||||
- name: deploy staging image
|
||||
image: git.novaloop.ch/novaloop-hosting/gitlab-build-docker-image:latest
|
||||
commands:
|
||||
*image-deploy
|
||||
environment:
|
||||
ENVIRONMENT: staging
|
||||
DRONE_CI_SSH_KEY:
|
||||
from_secret: DRONE_CI_SSH_KEY
|
||||
when:
|
||||
ref:
|
||||
include:
|
||||
- refs/tags/v[0-9]*.[0-9]*.[0-9]*-* # glob pattern matching (limited https://pkg.go.dev/github.com/bmatcuk/doublestar?utm_source=godoc)
|
||||
|
||||
- name: build production image
|
||||
image: gcr.io/kaniko-project/executor:v1.9.1-debug # without DIND requirement
|
||||
commands:
|
||||
*image-build
|
||||
environment:
|
||||
ENVIRONMENT: production
|
||||
DOCKER_AUTH_CONFIG:
|
||||
from_secret: docker-auth-config
|
||||
when:
|
||||
ref:
|
||||
include:
|
||||
- refs/tags/v[0-9]*.[0-9]*.[0-9]* # glob pattern matching (limited https://pkg.go.dev/github.com/bmatcuk/doublestar?utm_source=godoc)
|
||||
exclude:
|
||||
- refs/tags/v[0-9]*.[0-9]*.[0-9]*-*
|
||||
|
||||
- name: deploy production image
|
||||
image: git.novaloop.ch/novaloop-hosting/gitlab-build-docker-image:latest
|
||||
commands:
|
||||
*image-deploy
|
||||
environment:
|
||||
ENVIRONMENT: production
|
||||
DRONE_CI_SSH_KEY:
|
||||
from_secret: DRONE_CI_SSH_KEY
|
||||
when:
|
||||
ref:
|
||||
include:
|
||||
- refs/tags/v[0-9]*.[0-9]*.[0-9]* # glob pattern matching (limited https://pkg.go.dev/github.com/bmatcuk/doublestar?utm_source=godoc)
|
||||
exclude:
|
||||
- refs/tags/v[0-9]*.[0-9]*.[0-9]*-*
|
||||
Reference in New Issue
Block a user