mirror of
				https://github.com/nextcloud/docker.git
				synced 2025-10-27 06:21:15 +01:00 
			
		
		
		
	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:
		
							parent
							
								
									1e70224108
								
							
						
					
					
						commit
						baebdfefd9
					
				
							
								
								
									
										49
									
								
								.github/workflows/images.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								.github/workflows/images.yml
									
									
									
									
										vendored
									
									
										Normal 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
									
								
							
							
						
						
									
										22
									
								
								.github/workflows/update-sh.yml
									
									
									
									
										vendored
									
									
										Normal 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)" ]] | ||||
							
								
								
									
										88
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										88
									
								
								.travis.yml
									
									
									
									
									
								
							| @ -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 | ||||
							
								
								
									
										14
									
								
								update.sh
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								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 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user