summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTilo Spannagel <development@tilosp.de>2020-06-30 02:12:41 +0200
committerGitHub <noreply@github.com>2020-06-30 00:12:41 +0000
commitbaebdfefd931fca6799e2163d9ca3efe1520d4d3 (patch)
treeecfae0de780aebf900eb4696924353ddc7b3e5ed
parent1e702241082208e0af748370786d2ec18df39246 (diff)
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>
-rw-r--r--.github/workflows/images.yml49
-rw-r--r--.github/workflows/update-sh.yml22
-rw-r--r--.travis.yml88
-rwxr-xr-xupdate.sh14
4 files changed, 71 insertions, 102 deletions
diff --git a/.github/workflows/images.yml b/.github/workflows/images.yml
new file mode 100644
index 00000000..8c6d8e3e
--- /dev/null
+++ b/.github/workflows/images.yml
@@ -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 }}
diff --git a/.github/workflows/update-sh.yml b/.github/workflows/update-sh.yml
new file mode 100644
index 00000000..3f5fb09d
--- /dev/null
+++ b/.github/workflows/update-sh.yml
@@ -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)" ]]
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index e025f297..00000000
--- a/.travis.yml
+++ /dev/null
@@ -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
diff --git a/update.sh b/update.sh
index 7f317bec..5fc6da1f 100755
--- a/update.sh
+++ b/update.sh
@@ -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