refactor: use .python-version for docker build
This commit is contained in:
parent
d385860ca9
commit
06e60fb212
4 changed files with 45 additions and 10 deletions
|
|
@ -6,20 +6,41 @@ cd "$RUN_DIR"
|
|||
|
||||
builddir=build
|
||||
|
||||
_latest_python_version() {
|
||||
filter="$1"
|
||||
filter_regex=$(echo "$filter" | sed 's/\./\\\\./')
|
||||
curl -sfL https://api.github.com/repos/python/cpython/git/refs/tags \
|
||||
| jq -r 'map(select(.ref | test("^refs/tags/v?'"$filter_regex"'($|\\.)")) | .ref | match("refs/tags/v?(.*)").captures[0].string)[]' \
|
||||
| grep -xE '[.0-9]+' \
|
||||
| sort --version-sort \
|
||||
| tail -n 1
|
||||
}
|
||||
|
||||
[ -z "${DEBUG:-}" ] || set -x
|
||||
|
||||
mkdir -p "$builddir"
|
||||
|
||||
python_version_filter=$(cat .python-version)
|
||||
python_version=$(_latest_python_version "$python_version_filter")
|
||||
|
||||
if [ -z "$python_version" ]; then
|
||||
echo >&2 "No Python version found matching the filter: $python_version_filter"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
githash_short=$(git rev-parse --short HEAD)
|
||||
githash_long=$(git rev-parse HEAD)
|
||||
version="$githash_short"
|
||||
echo "$version" >"$builddir"/version
|
||||
|
||||
poetry export \
|
||||
--with=build \
|
||||
--output="$builddir"/requirements.txt
|
||||
|
||||
githash=$(git rev-parse --short HEAD)
|
||||
today=$(date -u '+%Y.%m.%d')
|
||||
version="${today}+${githash}"
|
||||
echo "$version" >"$builddir"/version
|
||||
|
||||
$DOCKER_BIN build \
|
||||
--pull \
|
||||
--tag "code.dumpr.org/ducklet/unwind":"$version" \
|
||||
--build-arg="PYTHON_VERSION=$python_version" \
|
||||
--label="python.version=$python_version" \
|
||||
--label="git.hash=$githash_long" \
|
||||
--tag="code.dumpr.org/ducklet/unwind":"$version" \
|
||||
.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue