Skip to content

Commit

Permalink
Update commands to know when to tag and push latest, even if that's t…
Browse files Browse the repository at this point in the history
…he only version being build or pushed
  • Loading branch information
GeoffreyBooth committed Feb 9, 2025
1 parent dc0345c commit 6164bcf
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 40 deletions.
26 changes: 9 additions & 17 deletions build.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
#!/usr/bin/env bash
source ./support.sh
source ./versions.sh


build_cmd() {
docker build --build-arg "METEOR_VERSION=$1" --tag geoffreybooth/meteor-base:"$1" ./src
if [[ $1 == $latest_version ]]; then
docker tag geoffreybooth/meteor-base:"$1" geoffreybooth/meteor-base:latest
fi
}

build() {
Expand All @@ -12,29 +16,17 @@ build() {
}


source ./versions.sh

building_all_versions=true
if [ -n "${CI_VERSION:-}" ]; then
meteor_versions=( "${CI_VERSION:-}" )
building_all_versions=false
elif [[ "${1-x}" != x ]]; then
meteor_versions=( "$1" )
building_all_versions=false
fi


for version in "${meteor_versions[@]}"; do
for version in "${versions[@]}"; do
printf "${GREEN}Building Docker base image for Meteor ${version}...${NC}\n"
if ! build $version; then
printf "${RED}Error building Docker base image for Meteor ${version}${NC}\n"
exit 1
fi
done

if [[ $building_all_versions ]]; then
docker tag geoffreybooth/meteor-base:"${version}" geoffreybooth/meteor-base:latest
printf "${GREEN}Success building Docker base images for all supported Meteor versions\n"

if [[ "${#versions[@]}" -eq 1 ]]; then
printf "${GREEN}Success building Docker base image for Meteor ${versions}\n"
else
printf "${GREEN}Success building Docker base images for Meteor versions ${meteor_versions}\n"
printf "${GREEN}Success building Docker base images for all supported Meteor versions\n"
fi
22 changes: 15 additions & 7 deletions push.sh
Original file line number Diff line number Diff line change
@@ -1,18 +1,26 @@
#!/usr/bin/env bash
source ./support.sh


source ./versions.sh

for version in "${meteor_versions[@]}"; do

for version in "${versions[@]}"; do
printf "${GREEN}Pushing Docker base image for Meteor ${version}...${NC}\n"
if ! docker push geoffreybooth/meteor-base:"${version}"; then
printf "${RED}Error pushing Docker base image for Meteor ${version}${NC}\n"
exit 1
fi

if [[ $version == $latest_version ]]; then
if ! docker push geoffreybooth/meteor-base:latest; then
printf "${RED}Error pushing Docker base image for Meteor (latest version)${NC}\n"
exit 1
fi
fi
done
if ! docker push geoffreybooth/meteor-base:latest; then
printf "${RED}Error pushing Docker base image for Meteor (latest version)${NC}\n"
exit 1


if [[ "${#versions[@]}" -eq 1 ]]; then
printf "${GREEN}Success pushing Docker base image for Meteor ${versions}\n"
else
printf "${GREEN}Success pushing Docker base images for all supported Meteor versions\n"
fi
printf "${GREEN}Success pushing Docker base images for all supported Meteor versions\n"
10 changes: 2 additions & 8 deletions test.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env bash
source ./support.sh
source ./versions.sh


exit_code=0 # Keep global, so that code below can get return value of this function
Expand All @@ -12,18 +13,11 @@ run_with_suppressed_output () {
fi
}

source ./versions.sh

if [ -n "${CI_VERSION:-}" ]; then
meteor_versions=( "$CI_VERSION" )
elif [[ "${1-x}" != x ]]; then
meteor_versions=( "$1" )
fi

cd example

at_least_one_failure=false
for version in "${meteor_versions[@]}"; do
for version in "${versions[@]}"; do
printf "${YELLOW}Testing Docker image geoffreybooth/meteor-base:${version}...${NC}\n"
SECONDS=0

Expand Down
15 changes: 7 additions & 8 deletions update.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/usr/bin/env bash
source ./support.sh
source ./versions.sh


# Check for dependencies
Expand Down Expand Up @@ -58,25 +59,23 @@ done

# Update files for new Meteor version

source ./versions.sh
newest_meteor_version="${meteor_versions[*]: -1}"

do_sed $"s| - '${newest_meteor_version}'| - '${newest_meteor_version}'\\n - '${new_meteor_version}'|" ./.github/workflows/continuous-integration-workflow.yml
do_sed $"s| - '${latest_version}'| - '${latest_version}'\\n - '${new_meteor_version}'|" ./.github/workflows/continuous-integration-workflow.yml

do_sed "s|${newest_meteor_version}|${new_meteor_version}|g" ./README.md
do_sed "s|${latest_version}|${new_meteor_version}|g" ./README.md

do_sed "s|${newest_meteor_version}|${new_meteor_version}|g" ./example/app-with-native-dependencies.dockerfile
do_sed "s|${latest_version}|${new_meteor_version}|g" ./example/app-with-native-dependencies.dockerfile

# Skip ./example/app/.meteor/release because the Meteor update command below will change it

do_sed "s|${newest_meteor_version}|${new_meteor_version}|g" ./example/default.dockerfile
do_sed "s|${latest_version}|${new_meteor_version}|g" ./example/default.dockerfile

do_sed $"s|'${newest_meteor_version}'|'${newest_meteor_version}' \\\\\n '${new_meteor_version}'|" ./versions.sh
do_sed $"s|'${latest_version}'|'${latest_version}' \\\\\n '${new_meteor_version}'|" ./versions.sh


# Update files for new Node version

set_node_version $newest_meteor_version # $node_version is the version of the current newest Meteor version, not the one being added
set_node_version $latest_version # $node_version is the version of the current newest Meteor version, not the one being added

# For 14.21.4 <= $new_node_version < 18.0.0, we need to use the Meteor fork of the Node Docker image; else, we use the regular official Node Docker image

Expand Down
13 changes: 13 additions & 0 deletions versions.sh
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
#!/usr/bin/env bash

# Versions to build this Docker image for
meteor_versions=( \
'1.9' \
Expand Down Expand Up @@ -62,3 +64,14 @@ meteor_versions=( \
'3.0.4' \
'3.1'
)

latest_version="${meteor_versions[*]: -1}"

# Get the array of versions to loop through, either a particular single version passed in or all of the versions listed above
if [ -n "${CI_VERSION:-}" ]; then
versions=( "$CI_VERSION" )
elif [[ "${1-x}" != x ]]; then
versions=( "$1" )
else
versions=( "${meteor_versions[@]}" )
fi

0 comments on commit 6164bcf

Please sign in to comment.