Replace Travis CI with GitHub actions (#939)

* Test build images using github actions

Signed-off-by: Tilo Spannagel <development@tilosp.de>

* Check for Changes by update.sh using github actions

Signed-off-by: Tilo Spannagel <development@tilosp.de>

* Remove travis.yml

Signed-off-by: Tilo Spannagel <development@tilosp.de>
This commit is contained in:
Tilo Spannagel 2020-06-30 02:12:41 +02:00 committed by GitHub
parent 1e70224108
commit baebdfefd9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 71 additions and 102 deletions

49
.github/workflows/images.yml vendored Normal file
View File

@ -0,0 +1,49 @@
name: Images
on:
pull_request:
push:
schedule:
- cron: 0 0 * * *
defaults:
run:
shell: 'bash -Eeuo pipefail -x {0}'
jobs:
generate-jobs:
name: Generate Jobs
runs-on: ubuntu-latest
outputs:
strategy: ${{ steps.generate-jobs.outputs.strategy }}
steps:
- uses: actions/checkout@v2
- id: generate-jobs
name: Generate Jobs
run: |
git clone --depth 1 https://github.com/docker-library/bashbrew.git -b master ~/bashbrew
strategy="$(GITHUB_REPOSITORY=nextcloud ~/bashbrew/scripts/github-actions/generate.sh)"
strategy="$(~/bashbrew/scripts/github-actions/munge-i386.sh -c <<<"$strategy")"
jq . <<<"$strategy" # sanity check / debugging aid
echo "::set-output name=strategy::$strategy"
test:
needs: generate-jobs
strategy: ${{ fromJson(needs.generate-jobs.outputs.strategy) }}
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- name: Prepare Environment
run: ${{ matrix.runs.prepare }}
- name: Pull Dependencies
run: ${{ matrix.runs.pull }}
- name: Build ${{ matrix.name }}
run: ${{ matrix.runs.build }}
- name: History ${{ matrix.name }}
run: ${{ matrix.runs.history }}
- name: Test ${{ matrix.name }}
run: ${{ matrix.runs.test }}
- name: '"docker images"'
run: ${{ matrix.runs.images }}

22
.github/workflows/update-sh.yml vendored Normal file
View File

@ -0,0 +1,22 @@
name: update.sh
on:
pull_request:
defaults:
run:
shell: 'bash -Eeuo pipefail -x {0}'
jobs:
check-changes:
name: Check for Changes
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check for Changes
run: |
hash_before="$(git write-tree)"
./update.sh
git add -A
[[ "$hash_before" = "$(git write-tree)" ]]

View File

@ -1,88 +0,0 @@
language: bash
services: docker
branches:
only:
- master
# preload images to avoid timeouts in tests
before_install:
- docker pull mariadb:10.3
- docker pull postgres:11-alpine
install:
- git clone https://github.com/docker-library/official-images.git ~/official-images
before_script:
- env | sort
- wget -qO- 'https://github.com/tianon/pgp-happy-eyeballs/raw/master/hack-my-builds.sh' | bash
- image="nextcloud:${VERSION}${VARIANT:+-$VARIANT}"
- if [[ "$ARCH" == 'i386' ]]; then sed -i -e 's/FROM php/FROM i386\/php/g' "${VERSION}/${VARIANT}/Dockerfile"; fi
script:
- |
(
set -Eeuo pipefail
set -x
travis_retry docker build -t "$image" "${VERSION}/${VARIANT}"
travis_retry ~/official-images/test/run.sh "$image"
.travis/test-example-dockerfiles.sh "$image"
)
after_script:
- docker images
jobs:
# https://github.com/docker-library/php/issues/822
allow_failures:
- env: VERSION=16.0 VARIANT=apache ARCH=i386
- env: VERSION=17.0 VARIANT=apache ARCH=i386
- env: VERSION=18.0 VARIANT=apache ARCH=i386
- env: VERSION=19.0 VARIANT=apache ARCH=i386
- env: VERSION=16.0-rc VARIANT=apache ARCH=i386
- env: VERSION=17.0-rc VARIANT=apache ARCH=i386
- env: VERSION=18.0-rc VARIANT=apache ARCH=i386
- env: VERSION=19.0-rc VARIANT=apache ARCH=i386
- env: VERSION=17.0-beta VARIANT=apache ARCH=i386
- env: VERSION=18.0-beta VARIANT=apache ARCH=i386
- env: VERSION=19.0-beta VARIANT=apache ARCH=i386
include:
- &test-scripts
stage: test scripts
env: SCRIPT=update.sh
services: []
install: skip
before_script: skip
script:
- hash_before=$(git write-tree)
- travis_retry ./update.sh
- bash -c "[[ $hash_before = $(git add -A && git write-tree) ]]"
after_script: skip
- <<: *test-scripts
env: SCRIPT=generate-stackbrew-library.sh
install:
- wget -O "$HOME/bin/bashbrew" https://doi-janky.infosiftr.net/job/bashbrew/job/master/lastSuccessfulBuild/artifact/bashbrew-amd64
- chmod +x "$HOME/bin/bashbrew"
script:
- travis_retry ./generate-stackbrew-library.sh
- stage: test images
env: VERSION=17.0 VARIANT=fpm-alpine ARCH=amd64
- env: VERSION=17.0 VARIANT=fpm-alpine ARCH=i386
- env: VERSION=17.0 VARIANT=fpm ARCH=amd64
- env: VERSION=17.0 VARIANT=fpm ARCH=i386
- env: VERSION=17.0 VARIANT=apache ARCH=amd64
- env: VERSION=17.0 VARIANT=apache ARCH=i386
- env: VERSION=18.0 VARIANT=fpm-alpine ARCH=amd64
- env: VERSION=18.0 VARIANT=fpm-alpine ARCH=i386
- env: VERSION=18.0 VARIANT=fpm ARCH=amd64
- env: VERSION=18.0 VARIANT=fpm ARCH=i386
- env: VERSION=18.0 VARIANT=apache ARCH=amd64
- env: VERSION=18.0 VARIANT=apache ARCH=i386
- env: VERSION=19.0 VARIANT=fpm-alpine ARCH=amd64
- env: VERSION=19.0 VARIANT=fpm-alpine ARCH=i386
- env: VERSION=19.0 VARIANT=fpm ARCH=amd64
- env: VERSION=19.0 VARIANT=fpm ARCH=i386
- env: VERSION=19.0 VARIANT=apache ARCH=amd64
- env: VERSION=19.0 VARIANT=apache ARCH=i386

View File

@ -100,8 +100,6 @@ function check_beta_released() {
printf '%s\n' "${fullversions_beta[@]}" | grep -qE "^$( echo "$1" | grep -oE '[[:digit:]]+(\.[[:digit:]]+){2}' )"
}
travisEnv=
function create_variant() {
dir="$1/$variant"
phpVersion=${php_version[$version]-${php_version[default]}}
@ -170,10 +168,6 @@ function create_variant() {
if [ "$variant" != "apache" ]; then
rm "$dir/config/apache-pretty-urls.config.php"
fi
for arch in i386 amd64; do
travisEnv=' - env: VERSION='"$1"' VARIANT='"$variant"' ARCH='"$arch"'\n'"$travisEnv"
done
}
curl -fsSL 'https://download.nextcloud.com/server/releases/' |tac|tac| \
@ -260,11 +254,3 @@ for version in "${versions_alpha[@]}"; do
fi
fi
done
# remove everything after '- stage: test images'
travis="$(awk '!p; /- stage: test images/ {p=1}' .travis.yml)"
echo "$travis" > .travis.yml
# replace the fist '-' with ' '
travisEnv="$(echo "$travisEnv" | sed '0,/-/{s/-/ /}')"
printf "$travisEnv" >> .travis.yml