support different (alpine) versions
ci/woodpecker/push/woodpecker Pipeline was successful Details

and make it easier to add new distros too
This commit is contained in:
f 2022-08-26 16:21:32 -03:00
parent 5a52984b3d
commit 4759658774
4 changed files with 21 additions and 4 deletions

View File

@ -19,6 +19,7 @@ RUN gem install --no-user-install --no-document --source https://rubygems.org ge
COPY ./gem-compiler.sh /usr/local/bin/gem-compiler
COPY ./bootstrap.sh /usr/local/bin/bootstrap
COPY ./bulk-compiler.sh /usr/local/bin/bulk-compiler
COPY ./os-version.sh /usr/local/bin/os-version
RUN install -dm 2750 -o builder -g builder /srv/gems
VOLUME /srv/gems

View File

@ -6,12 +6,16 @@ test -n "${HTTP_BASIC_PASSWORD}"
test -n "${SUTTY}"
test -n "${PLATFORM}"
source /etc/os-release
OS_VERSION="$(os-version)"
install -dm 755 -o builder -g builder cache gems
echo "1..$(find build/ -type f | grep -v /.keep | wc -l)"
find build/ -type f | grep -v /.keep | nl |
sed -re "s|\tbuild/([^/]+)/(.*)|&\tbuilt/${ALPINE_VERSION}/\1/\2\tfailed/${ALPINE_VERSION}/\1/\2\t\1\t\2|" |
sed -re "s|\tbuild/([^/]+)/(.*)|&\tbuilt/${ID}/${OS_VERSION}/\1/\2\tfailed/${ID}/${OS_VERSION}/\1/\2\t\1\t\2|" |
while read NUMBER BUILD BUILT FAILED GEM_NAME GEM_VERSION; do
if test -f "${BUILT}" ; then
echo "ok ${NUMBER} - ${GEM_NAME} ${GEM_VERSION} already built, skipping"

View File

@ -8,10 +8,17 @@ test -n "${HTTP_BASIC_PASSWORD}"
test -n "${SUTTY}"
test -n "${PLATFORM}"
source /etc/os-release
# 3.13.alpine.gems.sutty.nl
# rolling.arch.gems.sutty.nl
# 18.04.ubuntu.gems.sutty.nl
OS_VERSION="$(os-version)"
RUBY_GEMS="${OS_VERSION}.${ID}.gems.${SUTTY}"
cd cache/
# TODO: Support multiple Alpine/Ruby versions
gem fetch --source=https://gems.${SUTTY} --platform=ruby --version ${GEM_VERSION} ${GEM_NAME}
gem fetch --source=https://${RUBY_GEMS} --platform=ruby --version ${GEM_VERSION} ${GEM_NAME}
cd ../gems/
gem compile -V --prune --strip "strip --strip-unneeded" ${GEM_COMPILER_FLAGS} "../cache/${GEM_NAME}-${GEM_VERSION}.gem"
gem inabox -o "${GEM_NAME}-${GEM_VERSION}-${PLATFORM}.gem" --host https://${HTTP_BASIC_USER}:${HTTP_BASIC_PASSWORD}@gems.${SUTTY}
gem inabox -o "${GEM_NAME}-${GEM_VERSION}-${PLATFORM}.gem" --host https://${HTTP_BASIC_USER}:${HTTP_BASIC_PASSWORD}@${RUBY_GEMS}

5
os-version.sh Executable file
View File

@ -0,0 +1,5 @@
#!/bin/sh
# Return current version in DNS format
source /etc/os-release
echo "${BUILD_ID:-$(echo "${VERSION_ID}" | cut -d . -f 1-2 | sed -re "s/\./\n/" | tac | tr "\n" "." | sed -re "s/\.$//")}"