From 1c01c0e1f931569118588cb44af741cc7eafdc0b Mon Sep 17 00:00:00 2001 From: phil Date: Wed, 30 Aug 2023 00:26:54 +0200 Subject: [PATCH] [TASK] Init --- Makefile | 5 ++ pipeline.yml | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 167 insertions(+) create mode 100644 Makefile create mode 100644 pipeline.yml diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0baa3b9 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +set_pipeline: + fly -t datentonne sp -p penpot -c pipeline.yml + +trigger_job: + fly -t datentonne tj -j penpot/build -w diff --git a/pipeline.yml b/pipeline.yml new file mode 100644 index 0000000..a80fa34 --- /dev/null +++ b/pipeline.yml @@ -0,0 +1,162 @@ +--- +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