Pull gitlab / github installer code into new methods #1452
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Test Tugboat" | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
Test-Tugboat: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Create a Drupal project | |
run: composer create-project drupal/recommended-project . --ignore-platform-req=ext-gd | |
- uses: actions/checkout@v4 | |
with: | |
path: drainpipe | |
- uses: ./drainpipe/scaffold/github/actions/common/set-env | |
- name: Install DDEV | |
uses: ./drainpipe/scaffold/github/actions/common/ddev | |
with: | |
git-name: Drainpipe Bot | |
git-email: [email protected] | |
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} | |
# Lock in versions so tests know what to expect. | |
# Redis tag v1.2.0 == 6-bullseye | |
# Elasticsearch tag v0.3.2 == 7.17.14 | |
- name: Setup Project | |
run: | | |
ddev config --auto | |
ddev config --php-version "8.1" | |
ddev config --nodejs-version "18" | |
ddev get ddev/ddev-redis --version v1.2.0 | |
ddev get ddev/ddev-elasticsearch --version v0.3.2 | |
ddev restart | |
ddev composer config extra.drupal-scaffold.gitignore true | |
ddev composer config --json extra.drupal-scaffold.allowed-packages \[\"lullabot/drainpipe\"] | |
ddev composer config --no-plugins allow-plugins.composer/installers true | |
ddev composer config --no-plugins allow-plugins.drupal/core-composer-scaffold true | |
ddev composer config --no-plugins allow-plugins.lullabot/drainpipe true | |
ddev composer config repositories.drainpipe --json '{"type": "path", "url": "drainpipe", "options": {"symlink": false}}' | |
ddev composer config minimum-stability dev | |
ddev composer config extra.drainpipe --json '{"tugboat": {}}' | |
mkdir -p .tugboat | |
echo "php:" > .tugboat/config.drainpipe-override.yml | |
echo " aliases:" >> .tugboat/config.drainpipe-override.yml | |
echo " - foo" >> .tugboat/config.drainpipe-override.yml | |
echo " urls:" >> .tugboat/config.drainpipe-override.yml | |
echo " - /" >> .tugboat/config.drainpipe-override.yml | |
echo " screenshot:" >> .tugboat/config.drainpipe-override.yml | |
echo " timeout: 45" >> .tugboat/config.drainpipe-override.yml | |
echo " visualdiff:" >> .tugboat/config.drainpipe-override.yml | |
echo " fullPage: false" >> .tugboat/config.drainpipe-override.yml | |
ddev composer require lullabot/drainpipe --with-all-dependencies | |
- name: Add an online step | |
run: | | |
echo " online:tugboat:" >> Taskfile.yml | |
echo " cmds:" >> Taskfile.yml | |
echo " - echo \"Tugboat online\"" >> Taskfile.yml | |
ddev composer install | |
# Compare the generated files to the ones used to build this repository | |
# preview - they should be the same. | |
- name: Test Generated Files | |
run: | | |
diff -up drainpipe/.tugboat/config.yml .tugboat/config.yml | |
sed -i '/#drainpipe-start/,/#drainpipe-end/d' drainpipe/.tugboat/steps/1-init.sh | |
sed -i '/#drainpipe-start/,/#drainpipe-end/d' drainpipe/.tugboat/steps/2-update.sh | |
sed -i '/#drainpipe-start/,/#drainpipe-end/d' drainpipe/.tugboat/steps/3-build.sh | |
sed -i '/#drainpipe-start/,/#drainpipe-end/d' drainpipe/.tugboat/steps/4-online.sh | |
diff -up drainpipe/.tugboat/steps/1-init.sh .tugboat/steps/1-init.sh | |
diff -up drainpipe/.tugboat/steps/2-update.sh .tugboat/steps/2-update.sh | |
diff -up drainpipe/.tugboat/steps/3-build.sh .tugboat/steps/3-build.sh | |
diff -up drainpipe/.tugboat/steps/4-online.sh .tugboat/steps/4-online.sh | |
- name: Add a build:tugboat step | |
run: | | |
echo " build:tugboat:" >> Taskfile.yml | |
echo " cmds:" >> Taskfile.yml | |
echo " - echo \"Tugboat build\"" >> Taskfile.yml | |
ddev composer install | |
if ! grep -q './vendor/bin/task build:tugboat' .tugboat/steps/3-build.sh; then | |
exit 1 | |
fi | |
- name: Upload test artifacts | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: .tugboat | |
path: .tugboat | |
Test-Non-Default-Nodejs: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Create a Drupal project | |
run: composer create-project drupal/recommended-project . --ignore-platform-req=ext-gd | |
- uses: actions/checkout@v4 | |
with: | |
path: drainpipe | |
- uses: ./drainpipe/scaffold/github/actions/common/set-env | |
- name: Install DDEV | |
uses: ./drainpipe/scaffold/github/actions/common/ddev | |
with: | |
git-name: Drainpipe Bot | |
git-email: [email protected] | |
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} | |
- name: Setup Project | |
run: | | |
ddev config --auto | |
ddev config --php-version "8.1" | |
ddev config --nodejs-version "16" | |
ddev restart | |
ddev composer config extra.drupal-scaffold.gitignore true | |
ddev composer config --json extra.drupal-scaffold.allowed-packages \[\"lullabot/drainpipe\"] | |
ddev composer config --no-plugins allow-plugins.composer/installers true | |
ddev composer config --no-plugins allow-plugins.drupal/core-composer-scaffold true | |
ddev composer config --no-plugins allow-plugins.lullabot/drainpipe true | |
ddev composer config repositories.drainpipe --json '{"type": "path", "url": "drainpipe", "options": {"symlink": false}}' | |
ddev composer config minimum-stability dev | |
ddev composer config extra.drainpipe --json '{"tugboat": {}}' | |
ddev composer require lullabot/drainpipe --with-all-dependencies | |
- name: Test NODE_MAJOR is correct | |
run: | | |
cat .tugboat/steps/1-init.sh | |
grep -q NODE_MAJOR=16 .tugboat/steps/1-init.sh | |