163 lines
5.3 KiB
YAML
163 lines
5.3 KiB
YAML
---
|
|
resource_types:
|
|
- name: aptly-resource
|
|
type: docker-image
|
|
source:
|
|
repository: git.datentonne.net/docker-public/aptly-resource
|
|
tag: latest
|
|
resources:
|
|
- name: penpot
|
|
type: github-release
|
|
source:
|
|
owner: penpot
|
|
repository: penpot
|
|
access_token: ((github.access_token))
|
|
- name: penpot-deb
|
|
type: aptly-resource
|
|
source:
|
|
api_uri: https://apt-api.datentonne.net/
|
|
repo_uri: https://apt.datentonne.net/
|
|
repo: datentonne
|
|
distribution: debian
|
|
component: main
|
|
architecture: amd64
|
|
package: penpot
|
|
username: ((aptly.username))
|
|
password: ((aptly.password))
|
|
timeout: 1801
|
|
keep_versions: 5
|
|
jobs:
|
|
- name: build
|
|
plan:
|
|
- get: penpot
|
|
trigger: true
|
|
params:
|
|
globs:
|
|
- '*.tar.gz'
|
|
- task: build
|
|
config:
|
|
platform: linux
|
|
image_resource:
|
|
type: registry-image
|
|
source:
|
|
repository: git.datentonne.net/docker-public/fpm-docker
|
|
tag: latest
|
|
inputs:
|
|
- name: penpot
|
|
outputs:
|
|
- name: deb
|
|
run:
|
|
path: /bin/bash
|
|
args:
|
|
- -c
|
|
- |
|
|
export VERSION="$(cat penpot/version)"
|
|
export VERSION_OUT="$(cat penpot/version)-$(date +%s)"
|
|
cd penpot
|
|
mkdir -p etc/penpot
|
|
mkdir -p opt/penpot
|
|
cat <<- EOF > penpot.service
|
|
[Unit]
|
|
Description=penpot service with docker compose
|
|
Requires=docker.service
|
|
After=docker.service
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
RemainAfterExit=true
|
|
WorkingDirectory=/opt/penpot
|
|
ExecStart=docker compose up -d --remove-orphans
|
|
ExecStop=docker compose down
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
cat <<- EOF > after-install
|
|
EOF
|
|
chmod +x after-install
|
|
#cat <<- EOF > opt/penpot/env
|
|
# TAG=${VERSION}
|
|
# EOF
|
|
#ln -s env opt/penpot/.env
|
|
mkdir -p opt
|
|
cat <<- EOF > opt/penpot/docker-compose.yml
|
|
---
|
|
version: "3.5"
|
|
networks:
|
|
penpot:
|
|
volumes:
|
|
penpot_postgres_data:
|
|
penpot_assets_data:
|
|
services:
|
|
penpot-frontend:
|
|
image: "penpotapp/frontend:${VERSION}"
|
|
ports:
|
|
- 9001:80
|
|
volumes:
|
|
- penpot_assets_data:/opt/data
|
|
env_file:
|
|
- config.env
|
|
depends_on:
|
|
- penpot-backend
|
|
- penpot-exporter
|
|
networks:
|
|
- penpot
|
|
penpot-backend:
|
|
image: "penpotapp/backend:${VERSION}"
|
|
volumes:
|
|
- penpot_assets_data:/opt/data
|
|
depends_on:
|
|
- penpot-postgres
|
|
- penpot-redis
|
|
env_file:
|
|
- config.env
|
|
networks:
|
|
- penpot
|
|
penpot-exporter:
|
|
image: "penpotapp/exporter:${VERSION}"
|
|
env_file:
|
|
- config.env
|
|
environment:
|
|
# Don't touch it; this uses internal docker network to
|
|
# communicate with the frontend.
|
|
- PENPOT_PUBLIC_URI=http://penpot-frontend
|
|
networks:
|
|
- penpot
|
|
penpot-postgres:
|
|
image: "postgres:14"
|
|
restart: always
|
|
stop_signal: SIGINT
|
|
environment:
|
|
- POSTGRES_INITDB_ARGS=--data-checksums
|
|
- POSTGRES_DB=penpot
|
|
- POSTGRES_USER=penpot
|
|
- POSTGRES_PASSWORD=penpot
|
|
volumes:
|
|
- penpot_postgres_data:/var/lib/postgresql/data
|
|
networks:
|
|
- penpot
|
|
penpot-redis:
|
|
image: redis:7
|
|
restart: always
|
|
networks:
|
|
- penpot
|
|
EOF
|
|
fpm \
|
|
--verbose \
|
|
-f \
|
|
-n penpot \
|
|
-s dir \
|
|
-t deb \
|
|
-v $VERSION_OUT \
|
|
--after-install after-install \
|
|
--config-files opt/penpot/docker-compose.yml \
|
|
--deb-systemd penpot.service \
|
|
opt/penpot/=/opt/penpot/
|
|
dpkg-deb -c penpot_*.deb
|
|
cd ..
|
|
mv -v penpot/penpot_${VERSION_OUT}_amd64.deb deb/
|
|
echo "deb/penpot_${VERSION_OUT}_amd64.deb" > deb/filename
|
|
- put: penpot-deb
|
|
params:
|
|
archive_file: deb/filename
|