124 lines
3.5 KiB
YAML
124 lines
3.5 KiB
YAML
name: Build
|
|
|
|
on:
|
|
push:
|
|
branches: [ 'main' ]
|
|
paths-ignore:
|
|
- '**.md'
|
|
- '.gitea/workflows/release.yml'
|
|
- 'renovate.json'
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
PHP_VERSION: '8.3' # set this to the PHP version to use
|
|
COMPOSER_ALLOW_SUPERUSER: 1
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@7c0b4c8c8ebed23eca9ec2802474895d105b11bc
|
|
with:
|
|
php-version: ${{ env.PHP_VERSION }}
|
|
|
|
- name: Check if composer.json exists
|
|
id: check_files
|
|
uses: andstor/file-existence-action@87d74d4732ddb824259d80c8a508c0124bf1c673
|
|
with:
|
|
files: 'composer.json'
|
|
|
|
- name: Run composer install if composer.json exists
|
|
if: steps.check_files.outputs.files_exists == 'true'
|
|
run: |
|
|
composer validate --no-check-publish && composer install --prefer-dist --no-progress --ignore-platform-reqs
|
|
tar -czf typo3.tar.gz bin public packages config vendor build composer.json composer.lock
|
|
|
|
- uses: actions/upload-artifact@v3
|
|
with:
|
|
name: typo3
|
|
path: typo3.tar.gz
|
|
|
|
deploy-stage:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@7c0b4c8c8ebed23eca9ec2802474895d105b11bc
|
|
with:
|
|
php-version: ${{ env.PHP_VERSION }}
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: typo3
|
|
- name: Extract artifact
|
|
run: |
|
|
tar xf typo3.tar.gz
|
|
rm typo3.tar.gz
|
|
- name: Install ssh agent and rsync
|
|
run: |
|
|
apt update
|
|
apt install -y openssh-client rsync
|
|
- name: Upload release
|
|
uses: deployphp/action@v1
|
|
with:
|
|
deployer-binary: "./bin/dep"
|
|
dep: --file=./build/deploy.php release:create stage
|
|
private-key: ${{secrets.STAGE_KEY}}
|
|
switch-stage:
|
|
needs: deploy-stage
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@7c0b4c8c8ebed23eca9ec2802474895d105b11bc
|
|
with:
|
|
php-version: ${{ env.PHP_VERSION }}
|
|
- uses: actions/download-artifact@v3
|
|
with:
|
|
name: typo3
|
|
- name: Extract artifact
|
|
run: |
|
|
tar xf typo3.tar.gz
|
|
rm typo3.tar.gz
|
|
- name: Install ssh agent and rsync
|
|
run: |
|
|
apt update
|
|
apt install -y openssh-client rsync
|
|
- name: Switch to release
|
|
uses: deployphp/action@v1
|
|
with:
|
|
deployer-binary: "./bin/dep"
|
|
dep: --file=./build/deploy.php release:switch stage
|
|
private-key: ${{secrets.STAGE_KEY}}
|
|
|
|
# deploy-production:
|
|
# needs: build
|
|
# runs-on: ubuntu-latest
|
|
# steps:
|
|
# - name: Setup PHP
|
|
# uses: shivammathur/setup-php@7c0b4c8c8ebed23eca9ec2802474895d105b11bc
|
|
# with:
|
|
# php-version: ${{ env.PHP_VERSION }}
|
|
# - uses: actions/download-artifact@v3
|
|
# with:
|
|
# name: typo3
|
|
# - name: Extract artifact
|
|
# run: |
|
|
# tar xf typo3.tar.gz
|
|
# rm typo3.tar.gz
|
|
# - name: Install ssh agent and rsync
|
|
# run: |
|
|
# apt update
|
|
# apt install -y openssh-client rsync
|
|
# - name: Deploy
|
|
# uses: deployphp/action@v1
|
|
# with:
|
|
# deployer-binary: "./bin/dep"
|
|
# dep: --file=./build/deploy.php release:create production
|
|
# private-key: ${{secrets.PROD_KEY}}
|