[ { kind: 'pipeline', type: 'docker', name: 'reflex-ipad', steps: [ { name: 'builder', image: 'plugins/docker', settings: { tags: ['builder-${DRONE_BUILD_NUMBER}'], dockerfile: 'Dockerfile.builder', registry: 'gitea.pb42.de', repo: 'gitea.pb42.de/matthias/reflex-ipad', cache_from: 'gitea.pb42.de/matthias/reflex-ipad:builder', config: { from_secret: 'dockerconfigjson' }, purge: false, }, }, { name: 'frontend-builder', image: 'gitea.pb42.de/matthias/reflex-ipad:builder-${DRONE_BUILD_NUMBER}', pull: 'always', commands: [ 'cd /app', 'reflex export --frontend-only --no-zip', 'mv .web/_static /drone/src/web', ], depends_on: [ 'builder', ], }, { name: 'dockerfile-builder', image: 'alpine', pull: 'always', commands: [ 'apk add --update sed', 'sed -i Dockerfile.backend -e "s/#BUILDNR#/${DRONE_BUILD_NUMBER}/"', ], depends_on: [ 'builder', ], }, { name: 'backend', image: 'plugins/docker', settings: { tags: ['backend-latest'], dockerfile: 'Dockerfile.backend', registry: 'gitea.pb42.de', cache_from: 'gitea.pb42.de/matthias/reflex-ipad:backend-latest', repo: 'gitea.pb42.de/matthias/reflex-ipad', config: { from_secret: 'dockerconfigjson' }, build_args: ['API_URL=https://ipad.pb42.de'], purge: false, }, depends_on: [ 'builder', 'dockerfile-builder', ], }, { name: 'deploy_web', image: 'appleboy/drone-scp', settings: { host: 'pb42.de', target: '/', source: 'web/*', overwrite: true, debug: true, username: { from_secret: 'deploy_username', }, key: { from_secret: 'deploy_key', }, port: 42022, }, depends_on: [ 'frontend-builder', ], }, { name: 'deploy_web_htpasswd', image: 'appleboy/drone-scp', settings: { host: 'pb42.de', target: '/', source: 'private/api_passwords', overwrite: true, debug: true, username: { from_secret: 'deploy_username', }, key: { from_secret: 'deploy_key', }, port: 42022, }, depends_on: [ 'frontend-builder', ], }, { name: 'deploy-docker', image_: 'robkaandorp/drone-portainer', image__: 'gstolarz/drone-portainer', image___: 'gitea.pb42.de/matthias/drone-portainer', image: 'm42e/drone-portainer', settings: { portainer: 'https://portainer.pb42.de', uri: 'https://portainer.pb42.de', portainer_url: 'https://portainer.pb42.de', username: { from_secret: 'portainer_username' }, password: { from_secret: 'portainer_password' }, portainer_username: { from_secret: 'portainer_username' }, portainer_password: { from_secret: 'portainer_password' }, portainer_apikey: { from_secret: 'portainer_api_key' }, portainer_api_key: { from_secret: 'portainer_api_key' }, registry: 'gitea.pb42.de', endpoint: 'local', stack_name: 'reflex-ipad', stack: 'reflex-ipad', file: 'docker-compose.yml', standalone: true, swarmId: '', type: 2, environment: [], env: [], debug: true, }, depends_on: [ 'backend', ], }, ], trigger: { event: ['push'] }, image_pull_secrets: ['dockerconfigjson'], }, ]