Added a build stage for each variant of each version

[skip ci]
This commit is contained in:
Laurent Goderre 2018-03-23 08:57:02 -04:00
parent 42541fe0fb
commit a1f30ea9b6
4 changed files with 185 additions and 22 deletions

View File

@ -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"

View File

@ -201,7 +201,7 @@ function sort_versions () {
local sorted
local lines
local line
IFS=$'\n'
lines="${versions[*]}"
unset IFS

38
travis.yml.template Normal file
View File

@ -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 #

View File

@ -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