proper-website-2/.drone.yml

287 lines
6.6 KiB
YAML

#kind: pipeline
#type: kubernetes
#name: staging
#
#trigger:
# event:
# - push
# branch:
# - main
#
## STAGING!!!!
#steps:
#- name: build-wasm
# image: golang:1.17.8-alpine
# volumes:
# - name: build-staging
# path: /drone/src/build
# environment:
# APIURL: https://api.quenten.nl/api/testing
# CGO_ENABLED: 0
# commands:
# - mkdir ./build/web
# - GOARCH=wasm GOOS=js go build -o ./build/web/app.wasm -ldflags="-X 'main.ApiURL=$APIURL'" ./src
#- name: build-server
# image: golang:1.17.8-alpine
# volumes:
# - name: build-staging
# path: /drone/src/build
# environment:
# APIURL: https://api.quenten.nl/api/testing
# CGO_ENABLED: 0
# commands:
# - go build -o ./build/app -ldflags="-X 'main.ApiURL=$APIURL'" ./src
#- name: build-publish-image
# image: plugins/docker
# privileged: true
# volumes:
# - name: build-staging
# path: /drone/src/build
# settings:
# cache_from:
# - "dutchellie/proper-website-2:dev"
# username:
# from_secret: docker_username
# password:
# from_secret: docker_password
# dockerfile: Dockerfile
# repo: dutchellie/proper-website-2
# tags:
# - dev-${DRONE_COMMIT_SHA:0:8}
# depends_on:
# - build-wasm
# - build-server
#- name: deploy-staging
# image: pelotech/drone-helm3
# settings:
# mode: upgrade
# chart: .drone/helm/chart
# namespace: drone-staging
# release: newsite-staging
# skip_tls_verify: true
# values_files:
# - .drone/helm/staging-val.yaml
# values:
# - "image=dutchellie/proper-website-2:dev-${DRONE_COMMIT_SHA:0:8}"
# - "baseURL=staging.quenten.nl"
# - "name=newsite-staging"
# kube_api_server:
# from_secret: staging_api_server
# kube_token:
# from_secret: staging_kube_token
# kube_certificate:
# from_secret: staging_kube_certificate
# kube_service_account: drone-deploy
# dry_run: false
# depends_on:
# - build-publish-image
#
#volumes:
# - name: build-staging
# temp: {}
#
#---
kind: pipeline
type: kubernetes
name: production
trigger:
event:
- push
branch:
- main
# PRODUCTION!!!!
steps:
- name: build-wasm
image: golang:1.17.8-alpine
volumes:
- name: build
path: /drone/src/build
environment:
APIURL: https://api.quenten.nl/api
CGO_ENABLED: 0
commands:
- mkdir ./build/web
- GOARCH=wasm GOOS=js go build -o ./build/web/app.wasm -ldflags="-X 'main.ApiURL=$APIURL'" ./src
- name: build-server
image: golang:1.17.8-alpine
volumes:
- name: build
path: /drone/src/build
environment:
APIURL: https://api.quenten.nl/api
CGO_ENABLED: 0
commands:
- go build -o ./build/app -ldflags="-X 'main.ApiURL=$APIURL'" ./src
- name: build-publish-image
image: plugins/docker
privileged: true
volumes:
- name: build
path: /drone/src/build
settings:
cache_from:
- "dutchellie/proper-website-2:latest"
username:
from_secret: docker_username
password:
from_secret: docker_password
dockerfile: Dockerfile
repo: dutchellie/proper-website-2
tags:
- latest-${DRONE_COMMIT_SHA:0:8}
depends_on:
- build-wasm
- build-server
- name: deploy-production
image: pelotech/drone-helm3
settings:
mode: upgrade
chart: .drone/helm/chart
namespace: drone-production
release: newsite-production
skip_tls_verify: true
values_files:
- .drone/helm/prod-val.yaml
values:
- "image=dutchellie/proper-website-2:latest-${DRONE_COMMIT_SHA:0:8}"
- "baseURL=old.quenten.nl"
- "name=newsite-prod"
kube_api_server:
from_secret: prod_api_server
kube_token:
from_secret: prod_kube_token
kube_certificate:
from_secret: prod_kube_certificate
kube_service_account: drone-deploy
dry_run: false
depends_on:
- build-publish-image
volumes:
- name: build
temp: {}
---
kind: pipeline
type: kubernetes
name: feature-branch
trigger:
event:
- push
branch:
exclude:
- main
# FEATURE DEPLOY
steps:
- name: build-wasm
image: golang:1.17.8-alpine
volumes:
- name: build-feature
path: /drone/src/build
environment:
APIURL: https://api.quenten.nl/api/testing
CGO_ENABLED: 0
commands:
- mkdir ./build/web
- GOARCH=wasm GOOS=js go build -o ./build/web/app.wasm -ldflags="-X 'main.ApiURL=$APIURL'" ./src
- name: build-server
image: golang:1.17.8-alpine
volumes:
- name: build-feature
path: /drone/src/build
environment:
APIURL: https://api.quenten.nl/api/testing
CGO_ENABLED: 0
commands:
- go build -o ./build/app -ldflags="-X 'main.ApiURL=$APIURL'" ./src
- name: build-publish-image
image: plugins/docker
privileged: true
volumes:
- name: build-feature
path: /drone/src/build
settings:
username:
from_secret: docker_username
password:
from_secret: docker_password
dockerfile: Dockerfile
repo: dutchellie/proper-website-2
tags:
- feature-${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}
depends_on:
- build-wasm
- build-server
- name: deploy-staging
image: pelotech/drone-helm3
settings:
mode: upgrade
chart: .drone/helm/chart
namespace: drone-staging
release: feature-${DRONE_BRANCH}
skip_tls_verify: true
values_files:
- .drone/helm/staging-val.yaml
values:
- "image=dutchellie/proper-website-2:feature-${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}"
- "baseURL=${DRONE_BRANCH}.quenten.nl"
- "name=${DRONE_BRANCH}-deployment"
kube_api_server:
from_secret: staging_api_server
kube_token:
from_secret: staging_kube_token
kube_certificate:
from_secret: staging_kube_certificate
kube_service_account: drone-deploy
dry_run: false
depends_on:
- build-publish-image
volumes:
- name: build-feature
temp: {}
---
kind: pipeline
type: kubernetes
name: remove-feature-branch
trigger:
event:
- promote
target:
- destroy
branch:
exclude:
- main
steps:
- name: destroy
image: pelotech/drone-helm3
settings:
mode: uninstall
chart: .drone/helm/chart
namespace: drone-staging
release: feature-${DRONE_BRANCH}
skip_tls_verify: true
values_files:
- .drone/helm/staging-val.yaml
values:
- "image=dutchellie/proper-website-2:feature-${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}"
- "baseURL=${DRONE_BRANCH}.quenten.nl"
- "name=${DRONE_BRANCH}-deployment"
kube_api_server:
from_secret: staging_api_server
kube_token:
from_secret: staging_kube_token
kube_certificate:
from_secret: staging_kube_certificate
kube_service_account: drone-deploy
dry_run: false