Loading .gitlab-ci.yml +7 −18 Original line number Diff line number Diff line stages: - build - push docker_build: stage: build script: BUILD_EXTRA="--no-cache --pull" ./build.sh $CI_REGISTRY_IMAGE docker_push: stage: push before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" script: - docker push "${CI_REGISTRY_IMAGE}:oldstable" - docker push "${CI_REGISTRY_IMAGE}:stable" - docker push "${CI_REGISTRY_IMAGE}:rc" - docker push "${CI_REGISTRY_IMAGE}:dev" - docker push "${CI_REGISTRY_IMAGE}:latest" update: variables: BUILD_EXTRA: "--no-cache --pull" BUILD_NAME: "$CI_REGISTRY_IMAGE" BUILD_PUSH: "1" before_script: docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" script: ./build.sh only: refs: - master build.sh +21 −20 Original line number Diff line number Diff line Loading @@ -2,39 +2,40 @@ set -e declare -r name=${1:-docker.seblu.net/docker/dokuwiki} # Build dokuwiki images. # Set environ BUILD_PUSH to push build images. # Set environ BUILD_EXTRA to add arguents to docker build command line. # Define build image name. Define env BUILD_NAME to override. declare BUILD_NAME=${BUILD_NAME:-docker.seblu.net/docker/dokuwiki} # Dokuwiki upstream consider the last reliable version to be rc when available. # The update_check in dokuwiki is always looking for RC too. # https://forum.dokuwiki.org/d/8939-update-check-should-not-be-used-for-release-candidates # so we tag latest rc when available, either stable or oldstable. declare latest='' # declare well known versions. order matter! declare -a versions=(dev oldstable stable rc) declare -A url=( # Declare well known versions. Order matter! Latest is the latest tag. declare -r -A versions=( ["dev"]="http://github.com/splitbrain/dokuwiki/tarball/master" ["oldstable"]="https://download.dokuwiki.org/src/dokuwiki/dokuwiki-oldstable.tgz" ["stable"]="https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz" ["rc"]="https://download.dokuwiki.org/src/dokuwiki/dokuwiki-rc.tgz" ) for version in "${versions[@]}"; do # do not build unavailable url (e.g: rc is only avaible before a new release) echo "Checking $version url ${url[$version]}" curl -Isf "${url[$version]}" -o /dev/null || continue for version in "${!versions[@]}"; do # Do not build unavailable url (e.g: rc is only avaible before a new release) echo "Checking $version at ${versions[$version]}" curl -Isf "${versions[$version]}" -o /dev/null || continue echo "Building $version" docker build --build-arg=DOKUWIKI_URL="${url[$version]}" --tag "$name:$version" $BUILD_EXTRA . docker build --build-arg=DOKUWIKI_URL="${versions[$version]}" --tag "$BUILD_NAME:$version" $BUILD_EXTRA . [[ "$BUILD_PUSH" ]] && docker push "$BUILD_NAME:$version" latest=$version done echo "Tag latest: $latest" docker tag $name:$latest $name:latest echo ========================================================================= echo ::: IMAGE NOT PUSHED echo ::: to push image: for version in "${versions[@]}"; do echo docker push "$name:$version" done echo docker push "${name%:*}:latest" echo ========================================================================= # The latest tag is special if [[ "$latest" ]]; then echo "Tag latest is $latest" docker tag "$BUILD_NAME:$latest" "$BUILD_NAME:latest" [[ "$BUILD_PUSH" ]] && docker push "$BUILD_NAME:latest" fi Loading
.gitlab-ci.yml +7 −18 Original line number Diff line number Diff line stages: - build - push docker_build: stage: build script: BUILD_EXTRA="--no-cache --pull" ./build.sh $CI_REGISTRY_IMAGE docker_push: stage: push before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" script: - docker push "${CI_REGISTRY_IMAGE}:oldstable" - docker push "${CI_REGISTRY_IMAGE}:stable" - docker push "${CI_REGISTRY_IMAGE}:rc" - docker push "${CI_REGISTRY_IMAGE}:dev" - docker push "${CI_REGISTRY_IMAGE}:latest" update: variables: BUILD_EXTRA: "--no-cache --pull" BUILD_NAME: "$CI_REGISTRY_IMAGE" BUILD_PUSH: "1" before_script: docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" script: ./build.sh only: refs: - master
build.sh +21 −20 Original line number Diff line number Diff line Loading @@ -2,39 +2,40 @@ set -e declare -r name=${1:-docker.seblu.net/docker/dokuwiki} # Build dokuwiki images. # Set environ BUILD_PUSH to push build images. # Set environ BUILD_EXTRA to add arguents to docker build command line. # Define build image name. Define env BUILD_NAME to override. declare BUILD_NAME=${BUILD_NAME:-docker.seblu.net/docker/dokuwiki} # Dokuwiki upstream consider the last reliable version to be rc when available. # The update_check in dokuwiki is always looking for RC too. # https://forum.dokuwiki.org/d/8939-update-check-should-not-be-used-for-release-candidates # so we tag latest rc when available, either stable or oldstable. declare latest='' # declare well known versions. order matter! declare -a versions=(dev oldstable stable rc) declare -A url=( # Declare well known versions. Order matter! Latest is the latest tag. declare -r -A versions=( ["dev"]="http://github.com/splitbrain/dokuwiki/tarball/master" ["oldstable"]="https://download.dokuwiki.org/src/dokuwiki/dokuwiki-oldstable.tgz" ["stable"]="https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz" ["rc"]="https://download.dokuwiki.org/src/dokuwiki/dokuwiki-rc.tgz" ) for version in "${versions[@]}"; do # do not build unavailable url (e.g: rc is only avaible before a new release) echo "Checking $version url ${url[$version]}" curl -Isf "${url[$version]}" -o /dev/null || continue for version in "${!versions[@]}"; do # Do not build unavailable url (e.g: rc is only avaible before a new release) echo "Checking $version at ${versions[$version]}" curl -Isf "${versions[$version]}" -o /dev/null || continue echo "Building $version" docker build --build-arg=DOKUWIKI_URL="${url[$version]}" --tag "$name:$version" $BUILD_EXTRA . docker build --build-arg=DOKUWIKI_URL="${versions[$version]}" --tag "$BUILD_NAME:$version" $BUILD_EXTRA . [[ "$BUILD_PUSH" ]] && docker push "$BUILD_NAME:$version" latest=$version done echo "Tag latest: $latest" docker tag $name:$latest $name:latest echo ========================================================================= echo ::: IMAGE NOT PUSHED echo ::: to push image: for version in "${versions[@]}"; do echo docker push "$name:$version" done echo docker push "${name%:*}:latest" echo ========================================================================= # The latest tag is special if [[ "$latest" ]]; then echo "Tag latest is $latest" docker tag "$BUILD_NAME:$latest" "$BUILD_NAME:latest" [[ "$BUILD_PUSH" ]] && docker push "$BUILD_NAME:latest" fi