penpot/.github/workflows/build-bundles.yml
2025-05-07 10:04:58 +02:00

64 lines
2.5 KiB
YAML

name: Build and Upload Penpot Bundles
on:
workflow_dispatch:
push:
branches:
- github-actions-bundle-build
jobs:
build-bundles:
name: Build frontend, backend, exporter and upload bundles
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build Penpot CI Builder Image
run: |
docker build \
--build-arg EXTERNAL_UID=1000 \
--build-arg EXTERNAL_GID=1000 \
-t penpotapp/penpot-ci-builder:latest \
-f docker/devenv/Dockerfile \
docker/devenv
- name: Run manage.sh build-bundle from host
run: ./manage.sh build-bundle
- name: Create global README and package all bundles
run: |
echo "# Penpot Bundles" > bundles/README.md
echo "" >> bundles/README.md
echo "This package contains the automatically built Penpot artifacts (frontend, backend, and exporter) from the official repository." >> bundles/README.md
echo "" >> bundles/README.md
echo "## Contents" >> bundles/README.md
echo "" >> bundles/README.md
echo "- frontend/: Compiled frontend files of Penpot." >> bundles/README.md
echo "- backend/: Backend build artifacts of Penpot." >> bundles/README.md
echo "- exporter/: Module responsible for exporting resources from Penpot." >> bundles/README.md
echo "- README.md: This file." >> bundles/README.md
echo "" >> bundles/README.md
echo "## Usage" >> bundles/README.md
echo "" >> bundles/README.md
echo "1. Unzip the \"penpot-all-bundles.zip\" archive in your target environment." >> bundles/README.md
echo "2. Explore each subdirectory and follow the appropriate deployment steps for frontend, backend, and exporter based on your infrastructure." >> bundles/README.md
echo "3. You can use servers like NGINX to serve the frontend and Dockerized or custom environments to run backend/exporter services." >> bundles/README.md
cd bundles
mkdir all-in-one
cp -r ../frontend ../backend ../exporter README.md all-in-one/
zip -r penpot-all-bundles.zip all-in-one
- name: Upload all-in-one bundle
uses: actions/upload-artifact@v4
with:
name: penpot-all-bundles
path: bundles/penpot-all-bundles.zip