Files
openproject/.github/workflows/pullpreview.yml
T
2026-05-04 12:13:16 +02:00

59 lines
2.5 KiB
YAML

name: pullpreview
concurrency: ${{ github.ref }}
on:
schedule:
# this is used to make sure no dangling resources are left
- cron: "30 2 * * *"
pull_request:
types: [labeled, unlabeled, synchronize, closed, reopened]
jobs:
deploy:
permissions:
contents: read # to fetch code (actions/checkout)
pull-requests: write # to remove labels
if: github.repository_owner == 'opf' && ( github.event_name == 'schedule' || github.event.label.name == 'pullpreview' || contains(github.event.pull_request.labels.*.name, 'pullpreview') )
runs-on: ubuntu-slim
timeout-minutes: 60
steps:
- uses: actions/checkout@v6
- name: Generate .env.pullpreview file
run: |
echo "OPENPROJECT_SEED_ADMIN_USER_PASSWORD_RESET=false" >> .env.pullpreview
echo "OPENPROJECT_SHOW__SETTING__MISMATCH__WARNING=false" >> .env.pullpreview
echo "OPENPROJECT_FEATURE__STORAGES__MODULE__ACTIVE=true" >> .env.pullpreview
echo "OPENPROJECT_FEATURE__SHOW__CHANGES__ACTIVE=true" >> .env.pullpreview
echo "OPENPROJECT_LOOKBOOK__ENABLED=true" >> .env.pullpreview
echo "OPENPROJECT_HSTS=false" >> .env.pullpreview
echo "OPENPROJECT_NOTIFICATIONS_POLLING_INTERVAL=10000" >> .env.pullpreview
echo "OPENPROJECT_ENTERPRISE__CHARGEBEE__SITE=openproject-enterprise-test" >> .env.pullpreview
echo "OPENPROJECT_ENTERPRISE__TRIAL__CREATION__HOST=https://start.openproject-edge.com" >> .env.pullpreview
echo "OPENPROJECT_FEATURE_BLOCK_NOTE_EDITOR=true" >> .env.pullpreview
- name: Boot as BIM edition
if: contains(github.ref, 'bim/') || contains(github.head_ref, 'bim/')
run: |
echo "OPENPROJECT_EDITION=bim" >> .env.pullpreview
- name: Prepare docker-compose files
run: |
cp ./docker/pullpreview/docker-compose.yml ./docker-compose.pullpreview.yml
cp ./docker/pullpreview/Caddyfile ./Caddyfile
cp ./docker/prod/Dockerfile ./Dockerfile
- uses: pullpreview/action@v6
with:
# allows to ssh to the instance using our GitHub ssh key
admins: "crohr,HDinger,machisuji,oliverguenther,ulferts,wielinde,cbliard,@collaborators/push"
compose_files: docker-compose.pullpreview.yml
provider: hetzner
region: fsn1
instance_type: cpx42
ports: 80,443
default_port: 443
ttl: 10d
dns: my.opf.run
env:
HCLOUD_TOKEN: "${{ secrets.HCLOUD_TOKEN }}"
HETZNER_CA_KEY: "${{ secrets.HETZNER_CA_KEY }}"