Build system: Use 'picocms/pico-composer' to create release archives
This commit is contained in:
parent
448fff4702
commit
1dee2c1cf6
3 changed files with 78 additions and 17 deletions
|
@ -34,11 +34,11 @@ jobs:
|
|||
- stage: release
|
||||
install:
|
||||
- '[ -n "$TRAVIS_TAG" ] || travis_terminate 0'
|
||||
- install.sh --release
|
||||
- install.sh
|
||||
script:
|
||||
- deploy-release.sh
|
||||
before_deploy:
|
||||
- create-release-archive.sh "pico-release-$TRAVIS_TAG.tar.gz"
|
||||
- create-release.sh "pico-release-$TRAVIS_TAG.tar.gz"
|
||||
deploy:
|
||||
provider: releases
|
||||
api_key: ${GITHUB_OAUTH_TOKEN}
|
||||
|
|
76
_build/create-release.sh
Executable file
76
_build/create-release.sh
Executable file
|
@ -0,0 +1,76 @@
|
|||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
. "$(dirname "$0")/functions/parse-version.sh.inc"
|
||||
export PATH="$(dirname "$0")/tools:$PATH"
|
||||
|
||||
DEPLOYMENT_ID="${TRAVIS_TAG//\//_}"
|
||||
DEPLOYMENT_DIR="$TRAVIS_BUILD_DIR/_build/release-$DEPLOYMENT_ID.git"
|
||||
|
||||
[ -n "$RELEASE_REPO_SLUG" ] || export RELEASE_REPO_SLUG="$TRAVIS_REPO_SLUG"
|
||||
[ -n "$RELEASE_REPO_BRANCH" ] || export RELEASE_REPO_BRANCH="master"
|
||||
|
||||
# parameters
|
||||
ARCHIVE="$1" # release archive file name
|
||||
|
||||
if [ -z "$ARCHIVE" ]; then
|
||||
echo "Unable to create release archive: No file name specified" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# parse version
|
||||
if ! parse_version "$TRAVIS_TAG"; then
|
||||
echo "Unable to create release archive: Invalid version '$TRAVIS_TAG'" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# clone repo
|
||||
github-clone.sh "$DEPLOYMENT_DIR" "https://github.com/$RELEASE_REPO_SLUG.git" "$RELEASE_REPO_BRANCH"
|
||||
|
||||
cd "$DEPLOYMENT_DIR"
|
||||
|
||||
# force Pico version
|
||||
echo "Updating composer dependencies..."
|
||||
composer require --no-update \
|
||||
"picocms/pico $VERSION_FULL@$VERSION_STABILITY" \
|
||||
"picocms/pico-theme $VERSION_FULL@$VERSION_STABILITY" \
|
||||
"picocms/pico-deprecated $VERSION_FULL@$VERSION_STABILITY"
|
||||
echo
|
||||
|
||||
# install dependencies
|
||||
echo "Running \`composer install\`..."
|
||||
composer install --no-suggest --prefer-dist --no-dev --optimize-autoloader
|
||||
echo
|
||||
|
||||
# prepare release
|
||||
echo "Replacing 'index.php'..."
|
||||
cp vendor/picocms/pico/index.php.dist index.php
|
||||
|
||||
echo "Preparing 'composer.json' for release..."
|
||||
composer require --no-update \
|
||||
"picocms/pico ^$VERSION_MILESTONE" \
|
||||
"picocms/pico-theme ^$VERSION_MILESTONE" \
|
||||
"picocms/pico-deprecated ^$VERSION_MILESTONE"
|
||||
|
||||
echo "Removing '.git' directory and '.gitignore' file..."
|
||||
rm -f .gitignore
|
||||
rm -rf .git
|
||||
|
||||
echo "Removing '.git' directories of dependencies..."
|
||||
find vendor/ -type d -path 'vendor/*/*/.git' -print0 | xargs -0 rm -rf
|
||||
find themes/ -type d -path 'themes/*/.git' -print0 | xargs -0 rm -rf
|
||||
find plugins/ -type d -path 'plugins/*/.git' -print0 | xargs -0 rm -rf
|
||||
|
||||
echo
|
||||
|
||||
# create release archive
|
||||
echo "Creating release archive '$ARCHIVE'..."
|
||||
|
||||
if [ -e "$ARCHIVE" ]; then
|
||||
echo "Unable to create release archive: File exists" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
find . -mindepth 1 -maxdepth 1 -printf '%f\0' \
|
||||
| xargs -0 -- tar -czf "$ARCHIVE" --
|
||||
echo
|
|
@ -5,21 +5,6 @@ if [ -n "$GITHUB_OAUTH_TOKEN" ]; then
|
|||
composer config --global github-oauth.github.com "$GITHUB_OAUTH_TOKEN"
|
||||
fi
|
||||
|
||||
if [ "$1" == "--release" ]; then
|
||||
# install dependencies
|
||||
echo "Running \`composer install\`..."
|
||||
composer install --no-dev --optimize-autoloader
|
||||
[ $? -eq 0 ] || exit 1
|
||||
echo
|
||||
|
||||
# remove .git dirs
|
||||
echo "Removing '.git' directories of dependencies..."
|
||||
find vendor/ -type d -path 'vendor/*/*/.git' -print0 | xargs -0 rm -rf
|
||||
echo
|
||||
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# set COMPOSER_ROOT_VERSION when necessary
|
||||
if [ -z "$COMPOSER_ROOT_VERSION" ] && [ -z "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
PICO_VERSION_PATTERN="$(php -r "
|
||||
|
|
Loading…
Reference in a new issue