diff --git a/.travis.yml b/.travis.yml index cbee8a1e..5dc73074 100644 --- a/.travis.yml +++ b/.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" + diff --git a/functions.sh b/functions.sh index 175c1396..8e309767 100755 --- a/functions.sh +++ b/functions.sh @@ -201,7 +201,7 @@ function sort_versions () { local sorted local lines local line - + IFS=$'\n' lines="${versions[*]}" unset IFS diff --git a/travis.yml.template b/travis.yml.template new file mode 100644 index 00000000..4aecb7a5 --- /dev/null +++ b/travis.yml.template @@ -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 # diff --git a/update.sh b/update.sh index 7d349114..214524a0 100755 --- a/update.sh +++ b/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") 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