mirror of
https://github.com/danog/docker-php-extension-installer.git
synced 2024-12-03 18:07:47 +01:00
Merge pull request #105 from mlocati/gh-actions
Switch from TravisCI to GitHub Actions
This commit is contained in:
commit
9dfee72c09
78
.github/workflows/test-extensions.yml
vendored
Normal file
78
.github/workflows/test-extensions.yml
vendored
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
name: Test extensions
|
||||||
|
|
||||||
|
on:
|
||||||
|
- pull_request
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
check_syntax_shell:
|
||||||
|
name: Check shell coding style
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install Go
|
||||||
|
uses: actions/setup-go@v1
|
||||||
|
with:
|
||||||
|
go-version: "1.13"
|
||||||
|
- name: Install shfmt
|
||||||
|
run: GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Check coding style
|
||||||
|
run: |
|
||||||
|
export PATH=$PATH:$(go env GOPATH)/bin
|
||||||
|
./scripts/invoke-shfmt check
|
||||||
|
check_syntax_php:
|
||||||
|
name: Check PHP coding style
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install PHP
|
||||||
|
uses: shivammathur/setup-php@v1
|
||||||
|
with:
|
||||||
|
php-version: "7.4"
|
||||||
|
tools: composer
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Install Composer dependencies
|
||||||
|
run: composer install -a
|
||||||
|
- name: Check coding style
|
||||||
|
run: composer run-script lint -- --dry-run --diff
|
||||||
|
test_extensions:
|
||||||
|
needs:
|
||||||
|
- check_syntax_shell
|
||||||
|
- check_syntax_php
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
distro:
|
||||||
|
- alpine3.7
|
||||||
|
- alpine3.8
|
||||||
|
- alpine3.9
|
||||||
|
- alpine3.10
|
||||||
|
- jessie
|
||||||
|
- stretch
|
||||||
|
- buster
|
||||||
|
name: Check on ${{ matrix.distro }}
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
DOCKER_DISTRO: ${{ matrix.distro }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- name: Test extensions
|
||||||
|
run: ./scripts/ci-test-extensions "${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}"
|
||||||
|
test_restoring_packages:
|
||||||
|
name: Test restoring packages
|
||||||
|
needs:
|
||||||
|
- check_syntax_shell
|
||||||
|
- check_syntax_php
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
with:
|
||||||
|
fetch-depth: 1
|
||||||
|
- run: docker run --rm --volume "$(pwd):/app" --workdir /app php:7.3-stretch ./scripts/test-restore-apt
|
20
.github/workflows/update-readme.yml
vendored
Normal file
20
.github/workflows/update-readme.yml
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
name: Update README
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update_readme:
|
||||||
|
name: Update README
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: "!contains(github.event.head_commit.message, '[skip ci]')"
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v1
|
||||||
|
- name: Update README
|
||||||
|
env:
|
||||||
|
DEPLOY_KEY: "${{ secrets.DEPLOY_KEY }}"
|
||||||
|
GIT_SSH_COMMAND: "ssh -o StrictHostKeyChecking=no"
|
||||||
|
run: ./scripts/ci-update-readme
|
74
.travis.yml
74
.travis.yml
@ -1,74 +0,0 @@
|
|||||||
sudo: false
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
email: false
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- master
|
|
||||||
|
|
||||||
language: minimal
|
|
||||||
|
|
||||||
test-extensions-job-template: &test-extensions-job-template
|
|
||||||
stage: Test extensions
|
|
||||||
if: type = pull_request
|
|
||||||
services:
|
|
||||||
- docker
|
|
||||||
script: ./scripts/travisci-test-extensions
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
include:
|
|
||||||
- stage: Pre-test checks
|
|
||||||
name: Check shell coding style
|
|
||||||
if: type = pull_request
|
|
||||||
language: go
|
|
||||||
go: '1.13'
|
|
||||||
before_script: GO111MODULE=on go install mvdan.cc/sh/v3/cmd/shfmt
|
|
||||||
script: ./scripts/invoke-shfmt check
|
|
||||||
|
|
||||||
- stage: Pre-test checks
|
|
||||||
name: Check PHP coding style
|
|
||||||
if: type = pull_request
|
|
||||||
language: php
|
|
||||||
php: '7.4'
|
|
||||||
install: composer install -a
|
|
||||||
script: composer run-script lint -- --dry-run --diff
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Alpine 3.7
|
|
||||||
env: DOCKER_DISTRO=alpine3.7
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Alpine 3.8
|
|
||||||
env: DOCKER_DISTRO=alpine3.8
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Alpine 3.9
|
|
||||||
env: DOCKER_DISTRO=alpine3.9
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Alpine 3.10
|
|
||||||
env: DOCKER_DISTRO=alpine3.10
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Debian 8 (jessie)
|
|
||||||
env: DOCKER_DISTRO=jessie
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Debian 9 (stretch)
|
|
||||||
env: DOCKER_DISTRO=stretch
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test extensions on Debian 10 (buster)
|
|
||||||
env: DOCKER_DISTRO=buster
|
|
||||||
|
|
||||||
- <<: *test-extensions-job-template
|
|
||||||
name: Test restoring previous packages
|
|
||||||
script: docker run --rm --volume "$TRAVIS_BUILD_DIR:/app" --workdir /app php:7.3-stretch ./scripts/test-restore-apt
|
|
||||||
|
|
||||||
- stage: Update docs
|
|
||||||
name: Update README.md
|
|
||||||
if: branch = master AND type = push
|
|
||||||
env:
|
|
||||||
- secure: "vsl8z41oBky/MDRDKqs74Bif6BJldCPFVdl2lbPcjehOYG5cZ4YRLIEuhgJfnOglCGdyY6gh/2umSowRI4r5mC/ZR42RKJzWj9xQX2usJbzeOeZj+5eQv5im1DVwRmigUMzQOS743bd/zEeR9J3MLMgTGhKWEPKOJI6CHseUIKazAc0Z8vH6055YtkhGMqnolOe9h0gJx/sLP18qo2LTw82SyjOAMfbyYuHpiLznAqIOpNtwyj9WAujE3qN2oCo+9ALOnnrlINPqeLjnIOxRcSgYO4wIGPGSXIDTquuUht0McszOLuC9/kc6RybcyxmcqsssYRK2y0DQuavzyja5UaB4Pzf2vMrlbozAxdtF3oadZzfsAYfbhzaLbx0g1aAzL1CTJvXrWkZQgiy2c7tboXKJ3SvOqDp+GXEw08kCTpUq1AYSLw8ExlqcWZGiQxJfnfA05fWOkf8xM38ZQ+LPUHyGrt+PIw8FPAGhOV4E+BmHUlOoXOwoNllCEJ4QNkwxYT90eAMS5Rw8q6KASedwDFwyPCv8VtpNEtsl/FVa3m8/6wA7QmtuPxg7E2wceSkzsqHEcGLzERb4DnhVfrW0wv8zRw92vsnBmZdxusBT5uuyp9h5asjj6YhhVJ52g2NdCAGJlobiPk5X4uifshcdlcS8vF/jBMpI03XyJU4V4xc="
|
|
||||||
script: ./scripts/travisci-update-readme
|
|
@ -1,4 +1,4 @@
|
|||||||
[![TravisCI Build Status](https://travis-ci.org/mlocati/docker-php-extension-installer.svg?branch=master)](https://travis-ci.org/mlocati/docker-php-extension-installer)
|
![Test extensions](https://github.com/mlocati/docker-php-extension-installer/workflows/Test%20extensions/badge.svg)
|
||||||
|
|
||||||
# Easy installation of PHP extensions in official PHP Docker images
|
# Easy installation of PHP extensions in official PHP Docker images
|
||||||
|
|
||||||
|
@ -5,12 +5,23 @@ set -o errexit
|
|||||||
set -o nounset
|
set -o nounset
|
||||||
|
|
||||||
echo 'Checking environment'
|
echo 'Checking environment'
|
||||||
if test -z "${TRAVIS_BUILD_DIR:-}" || test -z "${TRAVIS_COMMIT_RANGE:-}" || test -z "${DOCKER_DISTRO:-}"; then
|
if test -n "${GITHUB_WORKSPACE:-}" && test -n "${GITHUB_SHA:-}"; then
|
||||||
echo 'Not in a TravisCI environment' >&2
|
if test -z "${1:-}"; then
|
||||||
|
echo 'Missing commit range of the push event' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
CI_BUILD_DIR="$GITHUB_WORKSPACE"
|
||||||
|
CI_COMMIT_RANGE="$1"
|
||||||
|
else
|
||||||
|
echo 'Not in a CI environment' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test -z "${DOCKER_DISTRO:-}"; then
|
||||||
|
echo 'DOCKER_DISTRO environment variable not set' >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
. "$TRAVIS_BUILD_DIR/scripts/common"
|
. "$CI_BUILD_DIR/scripts/common"
|
||||||
|
|
||||||
ALREADY_TESTED_EXTENSIONS=''
|
ALREADY_TESTED_EXTENSIONS=''
|
||||||
|
|
||||||
@ -29,7 +40,7 @@ getDockerImageName() {
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
getDockerImageName_suffix='cli'
|
getDockerImageName_suffix='cli'
|
||||||
getDockerImageName_reqs="$TRAVIS_BUILD_DIR/data/special-requirements"
|
getDockerImageName_reqs="$CI_BUILD_DIR/data/special-requirements"
|
||||||
if test -f "$getDockerImageName_reqs"; then
|
if test -f "$getDockerImageName_reqs"; then
|
||||||
IFS=' '
|
IFS=' '
|
||||||
for getDockerImageName_testExtension in $1; do
|
for getDockerImageName_testExtension in $1; do
|
||||||
@ -86,7 +97,7 @@ testExtension() {
|
|||||||
fi
|
fi
|
||||||
printf ' - Docker image: %s\n' "$testExtension_Image"
|
printf ' - Docker image: %s\n' "$testExtension_Image"
|
||||||
testExtension_out="$(mktemp)"
|
testExtension_out="$(mktemp)"
|
||||||
if $(docker run --rm --volume "$TRAVIS_BUILD_DIR:/app" --workdir /app "$testExtension_Image" sh -c "./install-php-extensions $1 && php ./scripts/check-installed-extension.php $1" >"$testExtension_out" 2>&1); then
|
if $(docker run --rm --volume "$CI_BUILD_DIR:/app" --workdir /app "$testExtension_Image" sh -c "./install-php-extensions $1 && php ./scripts/check-installed-extension.php $1" >"$testExtension_out" 2>&1); then
|
||||||
rm -rf "$testExtension_out"
|
rm -rf "$testExtension_out"
|
||||||
printf ' - Passed\n'
|
printf ' - Passed\n'
|
||||||
return 0
|
return 0
|
||||||
@ -192,7 +203,7 @@ getAllPHPVersionsForExtension() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done <"$TRAVIS_BUILD_DIR/data/supported-extensions"
|
done <"$CI_BUILD_DIR/data/supported-extensions"
|
||||||
printf '%s' "$getAllPHPVersionsForExtension_result"
|
printf '%s' "$getAllPHPVersionsForExtension_result"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -211,7 +222,7 @@ testExtensionsFromMessage() {
|
|||||||
testExtensionsFromMessage_result=0
|
testExtensionsFromMessage_result=0
|
||||||
TEST_EXTENSIONS=
|
TEST_EXTENSIONS=
|
||||||
FIRST_LINE=1
|
FIRST_LINE=1
|
||||||
testExtensionsFromMessage_message="$(git -C "$TRAVIS_BUILD_DIR" log --pretty='format:%B' -n 1 "$1")"
|
testExtensionsFromMessage_message="$(git -C "$CI_BUILD_DIR" log --pretty='format:%B' -n 1 "$1")"
|
||||||
IFS='
|
IFS='
|
||||||
'
|
'
|
||||||
for COMMIT_LINE in $testExtensionsFromMessage_message; do
|
for COMMIT_LINE in $testExtensionsFromMessage_message; do
|
||||||
@ -269,7 +280,7 @@ ADDED_EXTENSION_LINE=
|
|||||||
FOUND_ATAT=
|
FOUND_ATAT=
|
||||||
IFS='
|
IFS='
|
||||||
'
|
'
|
||||||
for DIFF_LINE in $(git -C "$TRAVIS_BUILD_DIR" diff --no-indent-heuristic --minimal --no-color --word-diff=none -no-renames --unified=0 "$TRAVIS_COMMIT_RANGE" -- data/supported-extensions); do
|
for DIFF_LINE in $(git -C "$CI_BUILD_DIR" diff --no-indent-heuristic --minimal --no-color --word-diff=none -no-renames --unified=0 "$CI_COMMIT_RANGE" -- data/supported-extensions); do
|
||||||
if test -n "$DIFF_LINE"; then
|
if test -n "$DIFF_LINE"; then
|
||||||
if test -z "$FOUND_ATAT"; then
|
if test -z "$FOUND_ATAT"; then
|
||||||
if test -z "${DIFF_LINE##@@*}"; then
|
if test -z "${DIFF_LINE##@@*}"; then
|
||||||
@ -287,7 +298,7 @@ done
|
|||||||
|
|
||||||
IFS='
|
IFS='
|
||||||
'
|
'
|
||||||
for COMMIT_HASH in $(git -C "$TRAVIS_BUILD_DIR" log --pretty='format:%H' "$TRAVIS_COMMIT_RANGE"); do
|
for COMMIT_HASH in $(git -C "$CI_BUILD_DIR" log --pretty='format:%H' "$CI_COMMIT_RANGE"); do
|
||||||
if ! testExtensionsFromMessage "$COMMIT_HASH"; then
|
if ! testExtensionsFromMessage "$COMMIT_HASH"; then
|
||||||
TESTS_RESULTS=1
|
TESTS_RESULTS=1
|
||||||
fi
|
fi
|
70
scripts/ci-update-readme
Executable file
70
scripts/ci-update-readme
Executable file
@ -0,0 +1,70 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# Let's set a sane environment
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
|
||||||
|
UPDATE_README_COMMIT_AUTHOR_NAME='CI'
|
||||||
|
UPDATE_README_COMMIT_AUTHOR_EMAIL='michele@locati.it'
|
||||||
|
UPDATE_README_COMMIT_MESSAGE='[skip ci] Automatically update README.md'
|
||||||
|
WATCHED_FILES='data/special-requirements data/supported-extensions scripts/common scripts/update-readme scripts/ci-update-readme'
|
||||||
|
UPDATE_BRANCH='master'
|
||||||
|
|
||||||
|
echo 'Checking environment'
|
||||||
|
if test -z "${GITHUB_WORKSPACE:-}" || test -z "${GITHUB_REF:-}" || test -z "${GITHUB_EVENT_NAME:-}" || test -z "${GITHUB_REPOSITORY:-}"; then
|
||||||
|
echo 'Not in a GitHub Actions environment' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test "$GITHUB_EVENT_NAME" != 'push' || test "$GITHUB_REF" != "refs/heads/$UPDATE_BRANCH"; then
|
||||||
|
echo 'This script should only be run in push builds to %s' "$UPDATE_BRANCH" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if test -z "${DEPLOY_KEY:-}"; then
|
||||||
|
echo 'GitHub deploy key not set' >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
SCRIPTS_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
|
||||||
|
. "$SCRIPTS_DIR/common"
|
||||||
|
|
||||||
|
cd "$GITHUB_WORKSPACE"
|
||||||
|
|
||||||
|
printf 'Checking-out branch %s\n' "$UPDATE_BRANCH"
|
||||||
|
git checkout --force "$UPDATE_BRANCH"
|
||||||
|
|
||||||
|
LAST_AUTO_UPDATED_IN="$(git rev-list --max-count 1 --author "<$UPDATE_README_COMMIT_AUTHOR_EMAIL>" --grep "$UPDATE_README_COMMIT_MESSAGE" "$UPDATE_BRANCH")"
|
||||||
|
if test -z "$LAST_AUTO_UPDATED_IN"; then
|
||||||
|
printf 'Rebuild of README.md enabled (no previous automatic refresh of it in branch %s)\n' "$UPDATE_BRANCH"
|
||||||
|
else
|
||||||
|
MODIFIED_FILES_SINCE="$(git diff --name-only "$LAST_AUTO_UPDATED_IN...$UPDATE_BRANCH")"
|
||||||
|
if test -z "$(commonElements "$WATCHED_FILES" "$MODIFIED_FILES_SINCE")"; then
|
||||||
|
printf 'Rebuild of README.md not needed (no relevant files changed in branch %s since commit %s)\n' "$UPDATE_BRANCH" "$LAST_AUTO_UPDATED_IN"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
printf 'Rebuild of README.md enabled (relevant files changed in branch %s since commit %s)\n' "$UPDATE_BRANCH" "$LAST_AUTO_UPDATED_IN"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'Updating README.md'
|
||||||
|
"$SCRIPTS_DIR/update-readme"
|
||||||
|
if test -z "$(git ls-files -m | grep -E '^README\.md$')"; then
|
||||||
|
echo 'README.md has not been changed'
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
printf 'Initializing SSH'
|
||||||
|
eval "$(ssh-agent)"
|
||||||
|
printf '%s' "$DEPLOY_KEY" | tr -d '\r' | ssh-add - >/dev/null
|
||||||
|
|
||||||
|
printf 'Adding %s remote\n' "$GITHUB_REPOSITORY"
|
||||||
|
git remote add deploy "git@github.com/$GITHUB_REPOSITORY.git"
|
||||||
|
|
||||||
|
echo 'Committing changes to README.md'
|
||||||
|
git config user.name "$UPDATE_README_COMMIT_AUTHOR_NAME"
|
||||||
|
git config user.email "$UPDATE_README_COMMIT_AUTHOR_EMAIL"
|
||||||
|
git add README.md
|
||||||
|
git commit -m "$UPDATE_README_COMMIT_MESSAGE"
|
||||||
|
|
||||||
|
printf 'Pushing to %s\n' "$GITHUB_REPOSITORY"
|
||||||
|
git push deploy "$UPDATE_BRANCH"
|
||||||
|
|
||||||
|
echo 'Done.'
|
@ -24,6 +24,6 @@ shfmt $PARAMS \
|
|||||||
scripts/invoke-shfmt \
|
scripts/invoke-shfmt \
|
||||||
scripts/lint \
|
scripts/lint \
|
||||||
scripts/test-restore-apt \
|
scripts/test-restore-apt \
|
||||||
scripts/travisci-test-extensions \
|
scripts/ci-test-extensions \
|
||||||
scripts/travisci-update-readme \
|
scripts/ci-update-readme \
|
||||||
scripts/update-readme
|
scripts/update-readme
|
||||||
|
@ -1,73 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Let's set a sane environment
|
|
||||||
set -o errexit
|
|
||||||
set -o nounset
|
|
||||||
|
|
||||||
UPDATE_README_COMMIT_AUTHOR_NAME='Travis CI'
|
|
||||||
UPDATE_README_COMMIT_AUTHOR_EMAIL='michele@locati.it'
|
|
||||||
UPDATE_README_COMMIT_MESSAGE='[skip ci] Automatically update README.md'
|
|
||||||
WATCHED_FILES='data/special-requirements data/supported-extensions scripts/common scripts/update-readme scripts/travisci-update-readme'
|
|
||||||
|
|
||||||
SCRIPTS_DIR="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
|
|
||||||
. "$SCRIPTS_DIR/common"
|
|
||||||
|
|
||||||
echo 'Checking environment'
|
|
||||||
if test -z "${TRAVIS_BUILD_DIR:-}" || test -z "${TRAVIS_BRANCH:-}" || test -z "${TRAVIS_EVENT_TYPE:-}" || test -z "${TRAVIS_REPO_SLUG:-}"; then
|
|
||||||
echo 'Not in a TravisCI environment' >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if test -z "${GUTHUB_ACCESS_TOKEN:-}"; then
|
|
||||||
echo 'GitHub access token not set' >&2
|
|
||||||
# To create it:
|
|
||||||
# - go to https://github.com/settings/tokens/new?scopes=repo
|
|
||||||
# - create a new token
|
|
||||||
# - sudo apt install -y build-essential ruby ruby-dev
|
|
||||||
# - sudo gem install travis
|
|
||||||
# - travis encrypt -r <owner>/<repo> GUTHUB_ACCESS_TOKEN=<TOKEN>
|
|
||||||
# - Add to .travis.yml:
|
|
||||||
# env:
|
|
||||||
# global:
|
|
||||||
# - secure: "encrypted string"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if test "$TRAVIS_EVENT_TYPE" != 'push'; then
|
|
||||||
echo 'This script should only be run in push builds' >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf 'Checking-out branch %s\n' "$TRAVIS_BRANCH"
|
|
||||||
git checkout --force "$TRAVIS_BRANCH"
|
|
||||||
|
|
||||||
LAST_AUTO_UPDATED_IN="$(git -C "$TRAVIS_BUILD_DIR" rev-list --max-count 1 --author "<$UPDATE_README_COMMIT_AUTHOR_EMAIL>" --grep "$UPDATE_README_COMMIT_MESSAGE" "$TRAVIS_BRANCH")"
|
|
||||||
if test -z "$LAST_AUTO_UPDATED_IN"; then
|
|
||||||
printf 'Rebuild of README.md enabled (no previous automatic refresh of it in branch %s)\n' "$TRAVIS_BRANCH"
|
|
||||||
else
|
|
||||||
MODIFIED_FILES_SINCE="$(git -C "$TRAVIS_BUILD_DIR" diff --name-only "$LAST_AUTO_UPDATED_IN...$TRAVIS_BRANCH")"
|
|
||||||
if test -z "$(commonElements "$WATCHED_FILES" "$MODIFIED_FILES_SINCE")"; then
|
|
||||||
printf 'Rebuild of README.md not needed (no relevant files changed in branch %s since commit %s)\n' "$TRAVIS_BRANCH" "$LAST_AUTO_UPDATED_IN"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
printf 'Rebuild of README.md enabled (relevant files changed in branch %s since commit %s)\n' "$TRAVIS_BRANCH" "$LAST_AUTO_UPDATED_IN"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo 'Updating README.md'
|
|
||||||
"$TRAVIS_BUILD_DIR/scripts/update-readme"
|
|
||||||
if test -z "$(git -C "$TRAVIS_BUILD_DIR" ls-files -m | grep -E '^README\.md$')"; then
|
|
||||||
echo 'README.md has not been changed'
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf 'Adding %s remote\n' "$TRAVIS_REPO_SLUG"
|
|
||||||
git remote add deploy "https://$GUTHUB_ACCESS_TOKEN@github.com/$TRAVIS_REPO_SLUG.git"
|
|
||||||
|
|
||||||
echo 'Committing changes to README.md'
|
|
||||||
git -C "$TRAVIS_BUILD_DIR" config user.name "$UPDATE_README_COMMIT_AUTHOR_NAME"
|
|
||||||
git -C "$TRAVIS_BUILD_DIR" config user.email "$UPDATE_README_COMMIT_AUTHOR_EMAIL"
|
|
||||||
git -C "$TRAVIS_BUILD_DIR" add README.md
|
|
||||||
git -C "$TRAVIS_BUILD_DIR" commit -m "$UPDATE_README_COMMIT_MESSAGE"
|
|
||||||
|
|
||||||
printf 'Pushing to %s\n' "$TRAVIS_REPO_SLUG"
|
|
||||||
git push deploy "$TRAVIS_BRANCH"
|
|
||||||
|
|
||||||
echo 'Done.'
|
|
Loading…
Reference in New Issue
Block a user