Merge pull request #669 from LaurentGoderre/update-travis
Added a build stage for each variant of each version
This commit is contained in:
		
						commit
						92051845f0
					
				
							
								
								
									
										134
									
								
								.travis.yml
								
								
								
								
							
							
						
						
									
										134
									
								
								.travis.yml
								
								
								
								
							|  | @ -1,9 +1,18 @@ | |||
| #### DO NOT MODIFY. THIS FILE IS AUTOGENERATED #### | ||||
| 
 | ||||
| dist: trusty | ||||
| sudo: required | ||||
| 
 | ||||
| language: generic | ||||
| 
 | ||||
| script: ./test-build.sh $NODE_VERSION | ||||
| services: | ||||
|     - docker | ||||
| addons: | ||||
|   apt: | ||||
|     packages: | ||||
|       - docker-ce | ||||
| 
 | ||||
| script: ./test-build.sh $NODE_VERSION $VARIANT | ||||
| 
 | ||||
| jobs: | ||||
|   include: | ||||
|  | @ -28,28 +37,129 @@ jobs: | |||
|           packages: | ||||
|             - shellcheck | ||||
| 
 | ||||
|     # Docker Build # | ||||
|     - stage: Build | ||||
|       services: | ||||
|           - docker | ||||
|       addons: | ||||
|         apt: | ||||
|           packages: | ||||
|             - docker-ce | ||||
|       env: | ||||
|         - NODE_VERSION: '4' | ||||
|          - NODE_VERSION: "4" | ||||
|          - VARIANT: "default" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|         - NODE_VERSION: '6' | ||||
|          - NODE_VERSION: "4" | ||||
|          - VARIANT: "alpine" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|         - NODE_VERSION: '8' | ||||
|          - NODE_VERSION: "4" | ||||
|          - VARIANT: "onbuild" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|         - NODE_VERSION: '9' | ||||
|          - NODE_VERSION: "4" | ||||
|          - VARIANT: "slim" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|         - NODE_VERSION: 'chakracore/8' | ||||
|          - NODE_VERSION: "4" | ||||
|          - VARIANT: "stretch" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "4" | ||||
|          - VARIANT: "wheezy" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "6" | ||||
|          - VARIANT: "default" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "6" | ||||
|          - VARIANT: "alpine" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "6" | ||||
|          - VARIANT: "onbuild" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "6" | ||||
|          - VARIANT: "slim" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "6" | ||||
|          - VARIANT: "stretch" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "6" | ||||
|          - VARIANT: "wheezy" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "8" | ||||
|          - VARIANT: "default" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "8" | ||||
|          - VARIANT: "alpine" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "8" | ||||
|          - VARIANT: "onbuild" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "8" | ||||
|          - VARIANT: "slim" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "8" | ||||
|          - VARIANT: "stretch" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "8" | ||||
|          - VARIANT: "wheezy" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "9" | ||||
|          - VARIANT: "default" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "9" | ||||
|          - VARIANT: "alpine" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "9" | ||||
|          - VARIANT: "onbuild" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "9" | ||||
|          - VARIANT: "slim" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "9" | ||||
|          - VARIANT: "stretch" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "9" | ||||
|          - VARIANT: "wheezy" | ||||
| 
 | ||||
|     - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "chakracore/8" | ||||
|          - VARIANT: "default" | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										25
									
								
								functions.sh
								
								
								
								
							
							
						
						
									
										25
									
								
								functions.sh
								
								
								
								
							|  | @ -56,10 +56,29 @@ function get_variants() { | |||
| 	shift | ||||
| 
 | ||||
| 	local arch | ||||
| 	arch=$(get_arch) | ||||
| 	local availablevariants | ||||
| 	local variantsfilter | ||||
| 	local variants | ||||
| 	variants=$(grep "^$arch" "$dir/architectures" | sed -E 's/'"$arch"'[[:space:]]*//' | sed -E 's/,/ /g') | ||||
| 	echo "$variants" | ||||
| 
 | ||||
| 	arch=$(get_arch) | ||||
| 	variantsfilter=( "$@" ) | ||||
| 	IFS=' ' read -ra availablevariants <<< "$(grep "^$arch" "$dir/architectures" | sed -E 's/'"$arch"'[[:space:]]*//' | sed -E 's/,/ /g')" | ||||
| 
 | ||||
| 	if [ ${#variantsfilter[@]} -gt 0 ]; then | ||||
| 		for variant1 in "${availablevariants[@]}"; do | ||||
| 			for variant2 in "${variantsfilter[@]}"; do | ||||
| 				if [[ "$variant1" = "$variant2" ]]; then | ||||
| 					variants+=("$variant1") | ||||
| 				fi | ||||
| 			done | ||||
| 		done | ||||
| 
 | ||||
| 		if [ ${#variants[@]} -gt 0 ]; then | ||||
| 			echo "${variants[@]}" | ||||
| 		fi | ||||
| 	else | ||||
| 		echo "${availablevariants[@]}" | ||||
| 	fi | ||||
| } | ||||
| 
 | ||||
| # Get supported architectures for a specific version and variant | ||||
|  |  | |||
|  | @ -70,8 +70,8 @@ for version in "${versions[@]}"; do | |||
| 
 | ||||
| 	# Get supported variants according to the target architecture. | ||||
| 	# See details in function.sh | ||||
| 	variants=$(get_variants "$(dirname "$version")") | ||||
| 	for variant in $variants; do | ||||
| 	IFS=' ' read -ra variants <<< "$(get_variants "$(dirname "$version")")" | ||||
| 	for variant in "${variants[@]}"; do | ||||
| 		# Skip non-docker directories | ||||
| 		[ -f "$version/$variant/Dockerfile" ] || continue | ||||
| 
 | ||||
|  |  | |||
|  | @ -37,7 +37,7 @@ function build () { | |||
| 
 | ||||
| cd "$(cd "${0%/*}" && pwd -P)" || exit; | ||||
| 
 | ||||
| IFS=' ' read -ra versions <<< "$(get_versions . "$@")" | ||||
| IFS=' ' read -ra versions <<< "$(IFS=','; get_versions . "$1")" | ||||
| if [ ${#versions[@]} -eq 0 ]; then | ||||
|   fatal "No valid versions found!" | ||||
| fi | ||||
|  | @ -53,9 +53,9 @@ for version in "${versions[@]}"; do | |||
| 
 | ||||
|   # Get supported variants according to the target architecture. | ||||
|   # See details in function.sh | ||||
|   variants=$(get_variants "$(dirname "$version")") | ||||
|   IFS=' ' read -ra variants <<< "$(IFS=','; get_variants "$(dirname "$version")" "$2")" | ||||
| 
 | ||||
|   for variant in $variants; do | ||||
|   for variant in "${variants[@]}"; do | ||||
|     # Skip non-docker directories | ||||
|     [ -f "$version/$variant/Dockerfile" ] || continue | ||||
| 
 | ||||
|  |  | |||
|  | @ -0,0 +1,38 @@ | |||
| dist: trusty | ||||
| sudo: required | ||||
| 
 | ||||
| language: generic | ||||
| 
 | ||||
| services: | ||||
|     - docker | ||||
| addons: | ||||
|   apt: | ||||
|     packages: | ||||
|       - docker-ce | ||||
| 
 | ||||
| script: ./test-build.sh $NODE_VERSION $VARIANT | ||||
| 
 | ||||
| jobs: | ||||
|   include: | ||||
|     - stage: Test | ||||
|       env: | ||||
|         - TEST: Doc Toc Check | ||||
|       language: node_js | ||||
|       install: npm i -g doctoc | ||||
|       script: | ||||
|         - cp README.md README.md.tmp && | ||||
|           doctoc --title='## Table of Contents' --github README.md && | ||||
|           diff -q README.md README.md.tmp | ||||
| 
 | ||||
|     - stage: Test | ||||
|       env: | ||||
|         - TEST: Shell Check | ||||
|       script: shellcheck *.sh | ||||
|       addons: | ||||
|         apt: | ||||
|           sources: | ||||
|             - debian-sid | ||||
|           packages: | ||||
|             - shellcheck | ||||
| 
 | ||||
|     # Docker Build # | ||||
							
								
								
									
										37
									
								
								update.sh
								
								
								
								
							
							
						
						
									
										37
									
								
								update.sh
								
								
								
								
							|  | @ -52,10 +52,27 @@ function update_node_version { | |||
| 	) | ||||
| } | ||||
| 
 | ||||
| function add_stage { | ||||
| 	local baseuri=$1 | ||||
| 	shift | ||||
| 	local version=$1 | ||||
| 	shift | ||||
| 	local variant=$1 | ||||
| 	shift | ||||
| 
 | ||||
| 	echo '    - stage: Build | ||||
|       env: | ||||
|          - NODE_VERSION: "'"$version"'" | ||||
|          - VARIANT: "'"$variant"'" | ||||
| ' >> .travis.yml | ||||
| } | ||||
| 
 | ||||
| echo '#### DO NOT MODIFY. THIS FILE IS AUTOGENERATED #### | ||||
| ' | cat - travis.yml.template > .travis.yml | ||||
| 
 | ||||
| for version in "${versions[@]}"; do | ||||
| { | ||||
| 	# Skip "docs" and other non-docker directories | ||||
| 	[ -f "$version/Dockerfile" ] || exit | ||||
| 	[ -f "$version/Dockerfile" ] || continue | ||||
| 
 | ||||
| 	info "Updating version $version..." | ||||
| 
 | ||||
|  | @ -63,21 +80,19 @@ for version in "${versions[@]}"; do | |||
| 	versionnum=$(basename "$version") | ||||
| 	baseuri=$(get_config "$parentpath" "baseuri") | ||||
| 
 | ||||
| 	update_node_version "$baseuri" "$versionnum" "$parentpath/Dockerfile.template" "$version/Dockerfile" | ||||
| 	add_stage "$baseuri" "$version" "default" | ||||
| 	update_node_version "$baseuri" "$versionnum" "$parentpath/Dockerfile.template" "$version/Dockerfile" & | ||||
| 
 | ||||
| 	# Get supported variants according the target architecture | ||||
| 	# See details in function.sh | ||||
| 	variants=$(get_variants "$parentpath") | ||||
| 	IFS=' ' read -ra variants <<< "$(get_variants "$parentpath")" | ||||
| 
 | ||||
| 	for variant in $variants; do | ||||
| 	{ | ||||
| 	for variant in "${variants[@]}"; do | ||||
| 		# Skip non-docker directories | ||||
| 		[ -f "$version/$variant/Dockerfile" ] || exit | ||||
| 		update_node_version "$baseuri" "$versionnum" "$parentpath/Dockerfile-$variant.template" "$version/$variant/Dockerfile" "$variant" | ||||
| 	} & | ||||
| 		[ -f "$version/$variant/Dockerfile" ] || continue | ||||
| 		add_stage "$baseuri" "$version" "$variant" | ||||
| 		update_node_version "$baseuri" "$versionnum" "$parentpath/Dockerfile-$variant.template" "$version/$variant/Dockerfile" "$variant" & | ||||
| 	done | ||||
| 	wait | ||||
| } & | ||||
| done | ||||
| 
 | ||||
| wait | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue