Merge branch 'dev'
This commit is contained in:
commit
03622eaa69
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.build/
|
34
README.md
34
README.md
@ -6,11 +6,41 @@ Collection of Dockerfiles created to build & pack various tools.
|
|||||||
<br>
|
<br>
|
||||||
|
|
||||||
<!-- TOC -->
|
<!-- TOC -->
|
||||||
- [1. Tools](#1-tools)
|
- [1. How to use](#1-how-to-use)
|
||||||
|
- [1.1. CLI](#11-cli)
|
||||||
|
- [2. Tools](#2-tools)
|
||||||
<!-- /TOC -->
|
<!-- /TOC -->
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
# 1. Tools
|
# 1. How to use
|
||||||
|
|
||||||
|
Run the build-script `script/build.sh` with the path to the tool you want to build.
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
The docker-image will be tagged with `default` and the detected version/commit-hash.
|
||||||
|
|
||||||
|
You can add more tags or change the existing tag-naming-scheme using the environment-variable `TAG`.
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
## 1.1. CLI
|
||||||
|
|
||||||
|
`script/build.sh <toolPath> [extra-args for docker build ..]`
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
### 1.1.1. Environment-Variables
|
||||||
|
|
||||||
|
Variable | Description | Default
|
||||||
|
-|-|-
|
||||||
|
`TAG` | Tag for Docker-building | `TAGPREFIX` + `NAME`
|
||||||
|
`TAGPREFIX` | Set a prefix to the default-tag | -
|
||||||
|
`NAME` | Change the name used in the tag | *FolderName*
|
||||||
|
|
||||||
|
<br>
|
||||||
|
|
||||||
|
# 2. Tools
|
||||||
|
|
||||||
Nothing yet
|
Nothing yet
|
||||||
|
31
scripts/build.sh
Executable file
31
scripts/build.sh
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
scriptPath_file=$(dirname "${BASH_SOURCE[0]}")
|
||||||
|
scriptPath_folder=$(realpath "${scriptPath_file}")
|
||||||
|
utils_path="${scriptPath_folder}/utils"
|
||||||
|
|
||||||
|
WORKDIR=${1:-$PWD}
|
||||||
|
WORKDIR=$(realpath "$WORKDIR")
|
||||||
|
|
||||||
|
# -- VARIABLES --
|
||||||
|
# Store original path
|
||||||
|
ORIGINALDIR=$PWD
|
||||||
|
|
||||||
|
# Get args without path
|
||||||
|
EXTRA_ARGS="${@:2}"
|
||||||
|
|
||||||
|
TAG=${TAG:-"${TAG_PREFIX}${NAME}"}
|
||||||
|
|
||||||
|
|
||||||
|
# Call prepare
|
||||||
|
printf "# PREPARE\n"
|
||||||
|
source ${utils_path}/prepare.sh
|
||||||
|
|
||||||
|
# Call build
|
||||||
|
printf "# BUILD\n"
|
||||||
|
build_type=${BUILD:-"ownarch"}
|
||||||
|
source ${utils_path}/build-${build_type}.sh
|
||||||
|
|
||||||
|
|
||||||
|
# Switch back to original path
|
||||||
|
cd $ORIGINALDIR
|
9
scripts/utils/build-multiarch.sh
Executable file
9
scripts/utils/build-multiarch.sh
Executable file
@ -0,0 +1,9 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
PLATFORM=${PLATFORM:-"linux/amd64,linux/arm64/v8,linux/arm/v7"}
|
||||||
|
|
||||||
|
docker buildx build \
|
||||||
|
--platform $PLATFORM \
|
||||||
|
--tag $TAG:latest \
|
||||||
|
--tag "${TAG}:${VERSION}" \
|
||||||
|
$EXTRA_ARGS \
|
||||||
|
$WORKDIR
|
7
scripts/utils/build-ownarch.sh
Executable file
7
scripts/utils/build-ownarch.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
docker build \
|
||||||
|
--tag $TAG:latest \
|
||||||
|
--tag $TAG:$VERSION \
|
||||||
|
$EXTRA_ARGS \
|
||||||
|
"$WORKDIR"
|
55
scripts/utils/prepare.sh
Executable file
55
scripts/utils/prepare.sh
Executable file
@ -0,0 +1,55 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# --- VARIABLES ---
|
||||||
|
# Load variables
|
||||||
|
source $WORKDIR/info.env
|
||||||
|
|
||||||
|
# Check if certain vars are overwritten, set them if missing
|
||||||
|
if [ "${NAME}" = "" ]; then
|
||||||
|
NAME="$(basename $WORKDIR)"
|
||||||
|
fi
|
||||||
|
export NAME
|
||||||
|
printf "Name: ${NAME}\n"
|
||||||
|
|
||||||
|
repositoryFolder="$WORKDIR/.build/repository"
|
||||||
|
|
||||||
|
# --- SOURCES ---
|
||||||
|
# Get sources locally
|
||||||
|
if ! [ -d "$repositoryFolder" ]; then
|
||||||
|
git clone "${GIT_REPOSITORY}" .
|
||||||
|
cloned=True
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Change into repository
|
||||||
|
cd "$repositoryFolder"
|
||||||
|
|
||||||
|
if [ "$cloned" != True ]; then
|
||||||
|
# Checkout default-branch in case GIT_CHECKOUT was different
|
||||||
|
defaultBranch=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@')
|
||||||
|
git checkout "${defaultBranch}"
|
||||||
|
|
||||||
|
git pull # Get changes
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Checkout when set
|
||||||
|
if [ "$GIT_CHECKOUT" != "" ]; then
|
||||||
|
# Handle special directives
|
||||||
|
if [ "$GIT_CHECKOUT" = "latest-tag" ]; then
|
||||||
|
GIT_CHECKOUT=$(git describe --tags `git rev-list --tags --max-count=1`) # Get latest tag
|
||||||
|
fi
|
||||||
|
|
||||||
|
git checkout $GIT_CHECKOUT
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
# --- VERSION ---
|
||||||
|
# Get current version to build
|
||||||
|
VERSION=$(git describe --tags --long)
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
VERSION=$(git rev-parse HEAD)
|
||||||
|
fi
|
||||||
|
export VERSION
|
||||||
|
printf "Version: ${VERSION}\n"
|
||||||
|
|
||||||
|
TAG=${TAG:-"${TAG_PREFIX}${NAME}"}
|
||||||
|
printf "> ${TAG}\n"
|
Loading…
x
Reference in New Issue
Block a user