Skip to content

Commit

Permalink
[TASK] Add deployment for legacy hooking (#150)
Browse files Browse the repository at this point in the history
  • Loading branch information
andreaskienast committed Jan 15, 2024
1 parent 636a211 commit 65c5062
Show file tree
Hide file tree
Showing 7 changed files with 189 additions and 23 deletions.
3 changes: 3 additions & 0 deletions .ddev/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,10 @@
/mutagen/.start-synced
/nginx_full/nginx-site.conf
/postgres/postgresql.conf
/providers/acquia.yaml
/providers/lagoon.yaml
/providers/platform.yaml
/providers/upsun.yaml
/sequelpro.spf
/settings/settings.ddev.py
/traefik/config/intercept.yaml
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,11 @@ on:
branches:
- master
- develop
paths-ignore:
- 'legacy_hook/**'
pull_request:
paths-ignore:
- 'legacy_hook/**'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down
145 changes: 145 additions & 0 deletions .github/workflows/legacy-hook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
name: Legacy webhook

on:
push:
branches:
- master
- develop
paths:
- 'legacy_hook/**/*'
pull_request:
paths:
- 'legacy_hook/**/*'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
php-versions:
- '8.2'

steps:
- uses: actions/checkout@v4

- name: Setup PHP ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
coverage: pcov

- name: Setup Composer cache
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Recover Composer caches
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock', '**/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Change working dir
run:
cd legacy_hook

- name: Install dependencies (Composer)
run: composer install --prefer-dist --no-progress --no-interaction --ansi
env:
COMPOSER_AUTH: '{
"http-basic": {
"repo.packagist.com": {
"username": "token",
"password": "${{ secrets.PACKAGIST_AUTH_TOKEN }}"
}
},
"github-oauth": {
"github.com": "${{ secrets.ACTIONS_TOKEN }}"
}
}'
- name: Tests
run: composer t3g:test

deployment:
name: 'Deployment'
needs: build
if: github.ref == 'refs/heads/master' && github.event_name != 'pull_request'
runs-on: ubuntu-latest
steps:
- name: Setup SSH Key
env:
SSH_AUTH_SOCK: /tmp/ssh-auth.sock
run: |
mkdir -p ~/.ssh
echo "${{ secrets.PROD_SSH_PRIVATE_KEY }}" > ~/.ssh/deploy_legacy_hook_rsa
chmod 0600 ~/.ssh/deploy_legacy_hook_rsa
ssh-keygen -p -P "${{ secrets.PROD_SSH_PASSPHRASE }}" -N "" -f ~/.ssh/deploy_legacy_hook_rsa
ssh-agent -a $SSH_AUTH_SOCK > /dev/null
ssh-add ~/.ssh/deploy_legacy_hook_rsa
- uses: actions/checkout@v4

- name: Setup PHP ${{ matrix.php-versions }}
uses: shivammathur/setup-php@v2
with:
php-version: 8.2

- name: Setup Composer cache
id: composer-cache
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- name: Recover Composer caches
uses: actions/cache@v3
with:
path: ${{ steps.composer-cache.outputs.dir }}
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock', '**/composer.json') }}
restore-keys: |
${{ runner.os }}-composer-
- name: Install Magallanes
run: |
composer global require "andres-montanez/magallanes" --no-progress
/home/runner/.composer/vendor/bin/mage version
mkdir -p ./.mage/logs
- name: Get Environment
id: environment
run: |
echo "target=legacy_hook_$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')" >> $GITHUB_OUTPUT
- name: Deployment
env:
SSH_AUTH_SOCK: /tmp/ssh-auth.sock
COMPOSER_AUTH: '{
"http-basic": {
"repo.packagist.com": {
"username": "token",
"password": "${{ secrets.PACKAGIST_AUTH_TOKEN }}"
}
},
"github-oauth": {
"github.com": "${{ secrets.ACTIONS_TOKEN }}"
}
}'
run: |
/home/runner/.composer/vendor/bin/mage deploy ${{ steps.environment.outputs.target }} -vvv
- name: Archive Logs
uses: actions/upload-artifact@v3
if: always()
with:
name: logs
path: .mage/logs

- name: Echo logs
run: find .mage/logs/ -type f -exec cat {} +
if: always()
13 changes: 13 additions & 0 deletions .mage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,16 @@ magephp:
- exec: { cmd: "rm -rf var/cache"}
- exec: { cmd: "php8.2 ./bin/console cache:warmup"}
post-deploy:

legacy_hook_master:
user: prod.docs.typo.com
from: ./legacy_hook/
host_path: /srv/vhosts/prod.docs.typo3.com/site/Web/services/
hosts:
- prod.docs.typo3.com
pre-deploy:
- composer/install: { flags: "--no-dev --no-progress --optimize-autoloader --ansi"}
on-deploy:
on-release:
post-release:
post-deploy:
1 change: 1 addition & 0 deletions legacy_hook/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
.phpunit.cache/
vendor/
2 changes: 1 addition & 1 deletion legacy_hook/composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"require-dev": {
"roave/security-advisories": "dev-latest",
"phpunit/phpunit": "^10.2",
"mikey179/vfsstream": "^1.6"
"mikey179/vfsstream": "^1.6.11"
},
"scripts": {
"t3g:test:php:unit": [
Expand Down
44 changes: 22 additions & 22 deletions legacy_hook/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 65c5062

Please sign in to comment.