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