--- resource_types: - name: aptly-resource type: docker-image source: repository: git.datentonne.net/docker-public/aptly-resource tag: latest resources: - name: pixelfed type: github-release source: owner: pixelfed repository: pixelfed access_token: ((github.access_token)) tag_filter: "v([^v].*)" - name: pixelfed-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: pixelfed username: ((aptly.username)) password: ((aptly.password)) timeout: 1801 jobs: - name: build-docker plan: - get: pixelfed trigger: true params: include_source_tarball: true - task: build privileged: true config: platform: linux #image_resource: # type: registry-image # source: # repository: git.datentonne.net/docker-public/fpm-docker # tag: latest image_resource: type: docker-image source: repository: amidos/dcind inputs: - name: pixelfed #outputs: # - name: deb caches: - path: go-build caches: - path: go-mod params: PACKAGE_TOKEN: ((datentonne.gitea_package_token)) #PACKAGE_TOKEN: ((github.access_token)) run: path: bash args: - -ec - | source /docker-lib.sh start_docker || true export VERSION="$(cat pixelfed/version)" export VERSION_OUT="$(cat pixelfed/version)-$(date +%s)" cd pixelfed mkdir source tar xf source.tar.gz --strip-components=1 -C source cd source env docker build . -t pixelfed:$VERSION -f contrib/docker/Dockerfile.apache echo $PACKAGE_TOKEN | docker login git.datentonne.net --username phil --password-stdin docker tag pixelfed:$VERSION git.datentonne.net/docker-public/pixelfed:$VERSION docker push git.datentonne.net/docker-public/pixelfed:$VERSION - name: build-deb plan: - get: pixelfed trigger: true params: include_source_tarball: true - task: build config: platform: linux image_resource: type: registry-image source: repository: git.datentonne.net/docker-public/fpm-docker tag: latest inputs: - name: pixelfed outputs: - name: deb run: path: bash args: - -cc - | export VERSION="$(cat pixelfed/version)" export VERSION_OUT="$(cat pixelfed/version)-$(date +%s)" mkdir -p pixelfed/source mkdir -p opt/pixelfed cat <<- EOF > pixelfed.service [Unit] Description=pixelfed service with docker compose Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=true WorkingDirectory=/opt/pixelfed ExecStart=docker compose \ -f docker-compose.yml \ -f docker-compose.version.yml \ -f docker-compose.config.yml \ up -d --remove-orphans ExecStop=docker compose down [Install] WantedBy=multi-user.target EOF cat <<- EOF > after_upgrade.sh cd /opt/pixelfed docker compose exec app composer install docker compose exec app php artisan migrate --force docker compose exec app php artisan config:cache docker compose exec app php artisan route:cache docker compose exec app php artisan instance:actor EOF chmod +x after_upgrade.sh cd pixelfed tar xf source.tar.gz --strip-components=1 -C source cd .. cp pixelfed/source/.env.docker opt/pixelfed/.env.docker cp pixelfed/source/docker-compose.yml opt/pixelfed/docker-compose.yml sed -i 's/- \"8080:80\"/- ${APP_PORTS:-8080:80}/g' opt/pixelfed/docker-compose.yml cat <<- EOF > opt/pixelfed/docker-compose.version.yml version: "3.4" services: app: image: git.datentonne.net/docker-public/pixelfed:$VERSION worker: image: git.datentonne.net/docker-public/pixelfed:$VERSION EOF cat <<- EOF > opt/pixelfed/docker-compose.config.yml version: "3.4" EOF fpm \ --verbose \ -f \ -n pixelfed \ -s dir \ -t deb \ -v $VERSION_OUT \ --config-files opt/pixelfed/docker-compose.config.yml \ --after-upgrade after_upgrade.sh \ --deb-systemd pixelfed.service \ --deb-systemd-restart-after-upgrade \ opt/pixelfed/=/opt/pixelfed/ dpkg-deb -c pixelfed_*.deb mv -v pixelfed_${VERSION_OUT}_amd64.deb deb/ echo "deb/pixelfed_${VERSION_OUT}_amd64.deb" > deb/filename - put: pixelfed-deb params: archive_file: deb/filename gpg_passphrase_file: /etc/hosts