2021-12-09 15:34:37 +00:00
|
|
|
---
|
2020-10-04 18:45:49 +00:00
|
|
|
kind: pipeline
|
|
|
|
type: docker
|
2021-12-09 15:34:37 +00:00
|
|
|
name: validate
|
|
|
|
|
|
|
|
platform:
|
|
|
|
os: linux
|
|
|
|
arch: amd64
|
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: build
|
|
|
|
pull: if-not-exists
|
|
|
|
image: docker.nexus.home.rekahsoft.ca/guix:latest
|
|
|
|
commands:
|
|
|
|
- guix time-machine -C channels.scm -- build -f guix.scm
|
|
|
|
|
|
|
|
- name: promote-staging
|
|
|
|
pull: if-not-exists
|
|
|
|
image: docker.nexus.home.rekahsoft.ca/drone/cli:1.4-alpine
|
|
|
|
commands:
|
|
|
|
- export DRONE_SERVER="${DRONE_SYSTEM_PROTO}://${DRONE_SYSTEM_HOST}"
|
2021-12-10 00:37:02 +00:00
|
|
|
- export DRONE_TOKEN
|
2021-12-09 15:34:37 +00:00
|
|
|
- DRONE_PROMOTED_PIPELINE_ID=$(drone build promote --format '{{ .Number }}' "$DRONE_REPO" "$DRONE_BUILD_NUMBER" "staging")
|
2021-12-10 01:11:33 +00:00
|
|
|
- "while status=\"$(drone build info --format '{{ .Status }}' $DRONE_REPO $DRONE_PROMOTED_PIPELINE_ID)\"; do\ncase \"$status\" in\n pending|running)\n sleep 30s\n ;;\n success)\n break\n ;;\n failure|error|killed)\n echo \"Promoted job with id $DRONE_PROMOTED_PIPELINE_ID failed with status '$status'.\"\n exit 1\n ;;\n *)\n echo \"Unknown pipeline status '$status'.\"\n exit 1\nesac\ndone"
|
2021-12-09 15:34:37 +00:00
|
|
|
environment:
|
|
|
|
DRONE_TOKEN:
|
|
|
|
from_secret: drone_token
|
|
|
|
when:
|
|
|
|
branch:
|
|
|
|
- master
|
|
|
|
event:
|
|
|
|
- push
|
|
|
|
|
|
|
|
- name: promote-production
|
|
|
|
pull: if-not-exists
|
|
|
|
image: docker.nexus.home.rekahsoft.ca/drone/cli:1.4-alpine
|
|
|
|
commands:
|
|
|
|
- export DRONE_SERVER="${DRONE_SYSTEM_PROTO}://${DRONE_SYSTEM_HOST}"
|
2021-12-10 00:37:02 +00:00
|
|
|
- export DRONE_TOKEN
|
2021-12-09 15:34:37 +00:00
|
|
|
- DRONE_PROMOTED_PIPELINE_ID=$(drone build promote --format '{{ .Number }}' "$DRONE_REPO" "$DRONE_BUILD_NUMBER" "production")
|
2021-12-10 01:11:33 +00:00
|
|
|
- "while status=\"$(drone build info --format '{{ .Status }}' $DRONE_REPO $DRONE_PROMOTED_PIPELINE_ID)\"; do\ncase \"$status\" in\n pending|running)\n sleep 30s\n ;;\n success)\n break\n ;;\n failure|error|killed)\n echo \"Promoted job with id $DRONE_PROMOTED_PIPELINE_ID failed with status '$status'.\"\n exit 1\n ;;\n *)\n echo \"Unknown pipeline status '$status'.\"\n exit 1\nesac\ndone"
|
2021-12-09 15:34:37 +00:00
|
|
|
environment:
|
|
|
|
DRONE_TOKEN:
|
|
|
|
from_secret: drone_token
|
|
|
|
when:
|
|
|
|
branch:
|
|
|
|
- master
|
|
|
|
event:
|
|
|
|
- push
|
2020-10-04 18:45:49 +00:00
|
|
|
|
2021-11-26 06:51:13 +00:00
|
|
|
node:
|
|
|
|
guix: on
|
|
|
|
|
2021-12-09 15:34:37 +00:00
|
|
|
trigger:
|
|
|
|
event:
|
|
|
|
- push
|
|
|
|
- pull_request
|
|
|
|
- tag
|
|
|
|
|
|
|
|
---
|
|
|
|
kind: pipeline
|
|
|
|
type: docker
|
|
|
|
name: deploy
|
|
|
|
|
|
|
|
platform:
|
|
|
|
os: linux
|
|
|
|
arch: amd64
|
2020-10-04 23:30:40 +00:00
|
|
|
|
2020-10-04 18:45:49 +00:00
|
|
|
steps:
|
2021-12-09 15:34:37 +00:00
|
|
|
- name: init
|
2021-11-24 04:06:35 +00:00
|
|
|
pull: if-not-exists
|
|
|
|
image: docker.nexus.home.rekahsoft.ca/guix:latest
|
2020-10-04 18:45:49 +00:00
|
|
|
commands:
|
2021-12-09 15:34:37 +00:00
|
|
|
- cd infra
|
2021-12-09 17:16:24 +00:00
|
|
|
- "guix time-machine -C ../channels.scm -- shell -m manifest.scm -- make setup ENV=\"${DRONE_DEPLOY_TO}\" "
|
2021-12-09 15:34:37 +00:00
|
|
|
environment:
|
|
|
|
AWS_ACCESS_KEY_ID:
|
|
|
|
from_secret: aws_access_key_id
|
|
|
|
AWS_SECRET_ACCESS_KEY:
|
|
|
|
from_secret: aws_secret_access_key
|
|
|
|
|
|
|
|
- name: plan
|
|
|
|
pull: if-not-exists
|
|
|
|
image: docker.nexus.home.rekahsoft.ca/guix:latest
|
|
|
|
commands:
|
2021-12-09 23:12:57 +00:00
|
|
|
- export TF_VAR_site_static_files_dir="$(guix time-machine -C channels.scm -- build -f guix.scm | grep -e '^.*-site$')"
|
2021-12-09 15:34:37 +00:00
|
|
|
- cd infra
|
2021-12-09 17:16:24 +00:00
|
|
|
- "guix time-machine -C ../channels.scm -- shell -m manifest.scm -- make plan ENV=\"${DRONE_DEPLOY_TO}\" "
|
2021-12-09 15:34:37 +00:00
|
|
|
environment:
|
|
|
|
AWS_ACCESS_KEY_ID:
|
|
|
|
from_secret: aws_access_key_id
|
|
|
|
AWS_SECRET_ACCESS_KEY:
|
|
|
|
from_secret: aws_secret_access_key
|
|
|
|
PLAN: out.plan
|
|
|
|
|
|
|
|
- name: deploy
|
|
|
|
pull: if-not-exists
|
|
|
|
image: docker.nexus.home.rekahsoft.ca/guix:latest
|
|
|
|
commands:
|
|
|
|
- cd infra
|
2021-12-09 17:16:24 +00:00
|
|
|
- "guix time-machine -C ../channels.scm -- shell -m manifest.scm -- make deploy ENV=\"${DRONE_DEPLOY_TO}\" "
|
2021-12-09 15:34:37 +00:00
|
|
|
environment:
|
|
|
|
AWS_ACCESS_KEY_ID:
|
|
|
|
from_secret: aws_access_key_id
|
|
|
|
AWS_SECRET_ACCESS_KEY:
|
|
|
|
from_secret: aws_secret_access_key
|
|
|
|
PLAN: out.plan
|
|
|
|
|
|
|
|
node:
|
|
|
|
guix: on
|
|
|
|
|
|
|
|
trigger:
|
|
|
|
event:
|
|
|
|
- promote
|
|
|
|
|
|
|
|
...
|