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>pull/1177/head
parent
1e70224108
commit
baebdfefd9
@ -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 }}
|
||||
@ -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)" ]]
|
||||
@ -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
|
||||
Loading…
Reference in new issue