Install Composer PHAR to tools directory

[MAILPOET-2405]
This commit is contained in:
Jan Jakeš
2019-09-25 14:47:55 +02:00
committed by Jack Kitterhing
parent 26818042f4
commit c0d77e4564
10 changed files with 34 additions and 27 deletions

View File

@ -19,10 +19,9 @@ jobs:
name: "Set up test environment"
command: |
# install plugin dependencies
curl -sS https://getcomposer.org/installer | php
./composer.phar validate --no-check-all --no-check-publish
./composer.phar validate --no-check-all --no-check-publish --working-dir=prefixer
./composer.phar install
COMPOSER_DEV_MODE=1 php tools/install.php
./tools/vendor/composer.phar validate --no-check-all --no-check-publish
./tools/vendor/composer.phar validate --no-check-all --no-check-publish --working-dir=prefixer
touch .env
./do install
./do compile:all --env production

1
.gitignore vendored
View File

@ -1,6 +1,5 @@
.DS_Store
TODO
composer.phar
/vendor
/vendor-prefixed
/vendor_backup

View File

@ -27,11 +27,6 @@ $ cd mailpoet
# create the .env file
$ cp .env.sample .env
# change the values on .env file
# download composer
$ curl -sS https://getcomposer.org/installer | php
$ chmod +x ./composer.phar
# install PHP dependencies
$ ./composer.phar install
# install all dependencies (PHP and JS)
$ ./do install
# compile JS and CSS files

View File

@ -19,7 +19,7 @@ class RoboFile extends \Robo\Tasks {
function install() {
return $this->taskExecStack()
->stopOnFail()
->exec('./composer.phar install')
->exec('./tools/vendor/composer.phar install')
->exec('npm ci --prefer-offline')
->run();
}
@ -27,7 +27,7 @@ class RoboFile extends \Robo\Tasks {
function update() {
return $this->taskExecStack()
->stopOnFail()
->exec('./composer.phar update')
->exec('./tools/vendor/composer.phar update')
->exec('npm update')
->run();
}
@ -425,7 +425,7 @@ class RoboFile extends \Robo\Tasks {
return $this->collectionBuilder()
->taskExec('rm -rf ' . __DIR__ . '/vendor/goaop')
->taskExec('rm -rf ' . __DIR__ . '/vendor/nikic')
->taskExec('cd ' . __DIR__ . ' && ./composer.phar dump-autoload')
->taskExec('cd ' . __DIR__ . ' && ./tools/vendor/composer.phar dump-autoload')
->taskExec(
'WP_ROOT="' . getenv('WP_ROOT') . '" ' .
'php -d memory_limit=2G ' .
@ -435,7 +435,7 @@ class RoboFile extends \Robo\Tasks {
"$dir/lib"
)
->dir(__DIR__ . '/tasks/phpstan')
->taskExec('cd ' . __DIR__ . ' && ./composer.phar install')
->taskExec('cd ' . __DIR__ . ' && ./tools/vendor/composer.phar install')
->run();
}

View File

@ -30,7 +30,7 @@ npm ci --prefer-offline
# Dependency injection container cache.
echo '[BUILD] Building DI Container cache'
./composer.phar install
./tools/vendor/composer.phar install
./do container:dump
# Generate Doctrine metadata
@ -53,16 +53,16 @@ fi
# Production libraries.
echo '[BUILD] Fetching production libraries'
mkdir vendor-prefixed
./composer.phar install --no-dev --prefer-dist --optimize-autoloader --no-scripts
./tools/vendor/composer.phar install --no-dev --prefer-dist --optimize-autoloader --no-scripts
echo '[BUILD] Fetching prefixed production libraries'
./composer.phar install --prefer-dist --working-dir=./prefixer/
./tools/vendor/composer.phar install --prefer-dist --working-dir=./prefixer/
# Remove Doctrinne Annotations (no need since generated metadata are packed)
# Should be removed before `dump-autoload` to not include the annotations classes on the autoloader.
rm -rf vendor-prefixed/doctrine/annotations
./composer.phar dump-autoload
./tools/vendor/composer.phar dump-autoload
# Copy release folders.
echo '[BUILD] Copying release folders'

View File

@ -77,14 +77,14 @@
"post-update-cmd": [
"@fixPHPUnit57CodeCoverageForPHP72",
"./prefixer/process.sh",
"./composer.phar dump-autoload",
"./composer.phar --working-dir=tasks/code_sniffer install"
"./tools/vendor/composer.phar dump-autoload",
"./tools/vendor/composer.phar --working-dir=tasks/code_sniffer install"
],
"post-install-cmd": [
"@fixPHPUnit57CodeCoverageForPHP72",
"./prefixer/process.sh",
"./composer.phar dump-autoload",
"./composer.phar --working-dir=tasks/code_sniffer install"
"./tools/vendor/composer.phar dump-autoload",
"./tools/vendor/composer.phar --working-dir=tasks/code_sniffer install"
],
"fixPHPUnit57CodeCoverageForPHP72": "sed -i -- 's/\\$numTests = count(\\$coverageData\\[\\$i\\]);/$numTests = (is_array($coverageData[$i]) ? count($coverageData[$i]) : 0);/g' vendor/phpunit/php-code-coverage/src/Report/Html/Renderer/File.php"
},

1
do
View File

@ -1 +0,0 @@
vendor/bin/robo

13
do Executable file
View File

@ -0,0 +1,13 @@
#!/bin/sh
DIR=$(dirname $0)
ROBO=$DIR/vendor/bin/robo
# Robo executable not found, install dev tools (including Composer) and PHP packages (including Robo)
if [ ! -f $ROBO ]; then
COMPOSER_DEV_MODE=1 php tools/install.php
./tools/vendor/composer.phar install
fi
# pass command to Robo
$ROBO "$@"

View File

@ -1,11 +1,12 @@
#!/usr/bin/env bash
BASEDIR=$(dirname "$0")
DRY_RUN_CHECK=$($BASEDIR/../composer.phar install --working-dir=$BASEDIR --dry-run 2>&1 | grep 'Nothing to install or update')
COMPOSER_BIN=$BASEDIR/../tools/vendor/composer.phar
DRY_RUN_CHECK=$($COMPOSER_BIN install --working-dir=$BASEDIR --dry-run 2>&1 | grep 'Nothing to install or update')
if [[ $DRY_RUN_CHECK != "Nothing to install or update" ]]; then
rm -rf $BASEDIR/build
fi
if [[ ! -e $BASEDIR/build || -z $(ls -A $BASEDIR/../vendor-prefixed) ]]; then
$BASEDIR/../composer.phar install --working-dir=$BASEDIR
$COMPOSER_BIN install --working-dir=$BASEDIR
fi

View File

@ -68,8 +68,8 @@ sed -i "s/define( *'WP_DEBUG', false *);/$CONFIG/" ./wp-config.php
# Example: docker-compose run -e SKIP_DEPS=1 codeception ...
if [[ -z "${SKIP_DEPS}" ]]; then
cd /project
php composer.phar install
cd /wp-core
./tools/vendor/composer.phar install
cd - >/dev/null
fi
# activate MailPoet

View File

@ -1,6 +1,7 @@
<?php
$tools = [
'https://github.com/composer/composer/releases/download/1.9.0/composer.phar' => 'composer.phar',
'https://github.com/humbug/php-scoper/releases/download/0.11.4/php-scoper.phar' => 'php-scoper.phar',
'https://github.com/phpstan/phpstan/releases/download/0.11.5/phpstan.phar' => 'phpstan.phar',
'https://github.com/nette/tracy/releases/download/v2.6.4/tracy.phar' => 'tracy.phar',