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"
|
||||
|
||||
|
|
|
|||
27
functions.sh
27
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
|
||||
|
|
@ -201,7 +220,7 @@ function sort_versions () {
|
|||
local sorted
|
||||
local lines
|
||||
local line
|
||||
|
||||
|
||||
IFS=$'\n'
|
||||
lines="${versions[*]}"
|
||||
unset IFS
|
||||
|
|
|
|||
|
|
@ -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