Files
bake/Bakefile
T

89 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
REGISTRY=${REGISTRY:-docker.pkg.github.com}
USERNAME=${USERNAME:-kennethreitz}
//: //system //python
red "System is setup for local development."
//system: //warn @confirm
lazy_brew_pretty pipenv bats
//python: @skip:key=Pipfile.lock //system
pipenv install --dev
test: docker/build
unset BAKEFILE
docker-compose run --entrypoint bash ci -c 'set -ex && pip3 uninstall -y bake-cli && pip3 install -e . --upgrade && hash -r && cd tests && bats *.bats --pretty'
release: test //warn @confirm:secure release//pypi docker/push
//warn:
echo
echo "$(red 'Warning'): You are about to make modifications to your system."
echo
docker/build:
# Build the images.
set -ex && docker-compose build
docker/bash: @interactive docker/build
docker-compose run --entrypoint bash bake
release//pypi: @interactive //python
pipenv run python setup.py upload
docker/push: docker/build //docker/github //docker/dockerhub
//docker/github: docker/build
set -ux
declare -a IMAGES=('red', 'bake:core' 'bake:latest' 'bake:ci')
for IMAGE in "${IMAGES[@]}"; do
bake_step "Pushing $IMAGE..."
REMOTE_IMAGE="$REGISTRY/$USERNAME/bake/$IMAGE"
# Tag the images for GitHub Registry.
docker tag "$USERNAME/$IMAGE" "$REMOTE_IMAGE"
# Push the images to GitHub.
docker push "$REMOTE_IMAGE"
done
//docker/dockerhub: docker/build
docker-compose push
random/python/ip:
#!/usr/bin/env python
import requests
r = requests.get('https://httpbin.org/ip')
print(r.json()['origin'].split(',')[0])
//example/cli: //
red 'Testing subcommands.'
bake_step 'sub-task'
echo 'I should *not* be red.' | red | bake_indent | notred
echo 'But, I *should* be red.' | red --always | bake_indent | bake_indent
echo "$(echo $(red test --fg yellow) $(red test --bold) $(red test --fg cyan) | bake_indent)"
echo
/kr:
sparkescakesparkles="✨ 🍰 ✨" | pbcopy
echo "$sparkescakesparkles" | pbcopy
echo 'KR Copied!' | red --fg cyan
lazy_brew_pretty() {
# Install jq if it's not available.
if ! which -s jq; then
bake_step "Installing jq"
brew install jq 2>&1 | bake_indent --char $(red '|')
fi
set +e
# Install requested packages, if they aren't installed.
for PACKAGE in "${@}"; do
if ! which -s ${PACKAGE}; then
bake_step "Installing ${PACKAGE}" --color green
brew install "${PACKAGE}" 2>&1 | bake_indent --char $(red '|')
fi
done
}