You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

158 lines
3.2 KiB
YAML

kind: pipeline
type: docker
name: default
trigger:
branch:
- master
steps:
- name: debug-secrets
image: alpine
environment:
VAULT_API_URL:
from_secret: VAULT_API_URL
commands:
- 'echo "Docker Registry URL: $${VAULT_API_URL}"'
when:
event:
- push
- tag
# Build and publish with Docker layer caching
- name: publish
image: plugins/docker
# CRITICAL: Enable BuildKit at step environment level (not build_args!)
environment:
DOCKER_BUILDKIT: "1"
settings:
build_args:
# Enable inline cache export to registry
- BUILDKIT_INLINE_CACHE=1
# Application build arguments
- NEXT_PUBLIC_PYTHON_API_URL=https://api.playchoo.com
- NEXT_PUBLIC_AUTH_BACKEND_URL=https://manager-auth.api.playchoo.com
- NEXT_PUBLIC_SWISSOID_TARGET_SERVICE_HANDLE=playchoo-manager
- NEXT_PUBLIC_APP_VERSION=${DRONE_COMMIT_SHA:0:7}
- NEXT_PUBLIC_WEBSOCKET_URL=wss://api.playchoo.com
dockerfile: docker/Dockerfile
context: .
registry: registry.sn48.zivili.ch
repo: registry.sn48.zivili.ch/meow/playchoo-manager-nextjs
tags:
- "amd64-1.0.0"
- "latest"
username:
from_secret: PORTUS_USER
password:
from_secret: PORTUS_PASSWORD
debug: true
launch_debug: true
force_tag: true
# Pull cache from registry images
cache_from:
- "registry.sn48.zivili.ch/meow/playchoo-manager-nextjs:latest"
- "registry.sn48.zivili.ch/meow/playchoo-manager-nextjs:amd64-1.0.0"
daemon_off: true
when:
event:
- push
- tag
- name: deploy
image: registry.sn48.zivili.ch/meow/drone-deploy:amd64-1.0.0
pull: never
settings:
ssh_port:
from_secret: SSH_PORT
dockerconfigjson:
from_secret: dockerconfigjson
portus_user:
from_secret: PORTUS_USER
portus_password:
from_secret: PORTUS_PASSWORD
ssh_host:
from_secret: SSH_HOST
ssh_user:
from_secret: SSH_USER
ssh_key:
from_secret: SSH_KEY
ssh_fingerprint:
from_secret: SSH_FINGERPRINT
drone_agent1_token:
from_secret: DRONE_AGENT1_TOKEN
vault_api_url:
from_secret: VAULT_API_URL
---
kind: secret
name: SSH_HOST
get:
path: kv/data/__drone-admin-secrets
name: SSH_HOST
---
kind: secret
name: SSH_USER
get:
path: kv/data/__drone-admin-secrets
name: SSH_USER
---
kind: secret
name: SSH_KEY
get:
path: kv/data/__drone-admin-secrets
name: SSH_KEY
---
kind: secret
name: DRONE_AGENT1_TOKEN
get:
path: kv/data/__drone-admin-secrets
name: DRONE_AGENT1_TOKEN
---
kind: secret
name: VAULT_API_URL
get:
path: kv/data/__drone-admin-secrets
name: VAULT_API_URL
---
kind: secret
name: PORTUS_USER
get:
path: kv/data/__drone-admin-secrets
name: PORTUS_USER
---
kind: secret
name: PORTUS_PASSWORD
get:
path: kv/data/__drone-admin-secrets
name: PORTUS_PASSWORD
---
kind: secret
name: dockerconfigjson
get:
path: kv/data/__drone-admin-secrets
name: dockerconfigjson
image_pull_secrets:
from_secret: dockerconfigjson
---
kind: secret
name: SSH_PORT
get:
path: kv/data/__drone-admin-secrets
name: SSH_PORT
---
kind: secret
name: SSH_FINGERPRINT
get:
path: kv/data/__drone-admin-secrets
name: SSH_FINGERPRINT