Files
bake/Bakefile
T
2019-09-22 23:10:13 -04:00

95 lines
2.4 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}
install: install/system install/python
test: python/test docker/test
release: test release/pypi release/docker
python/test: install/python
unset BAKE_SILENT
pipenv run pytest
docker/bash: docker/build
docker-compose run --entrypoint bash bake
docker/test: docker/build
docker-compose run --entrypoint bash bake -c 'set -ex && pip3 install pytest && pytest'
docker/build:
# Build the images.
set -ex && docker-compose build
docker/build/full:
# Build the images.
set -ex && docker-compose build --no-cache
install/python: @skip:key=Pipfile.lock install/system
pipenv install --dev
install/system:
lazy_brew pipenv
release/pypi: install/python
pipenv run python setup.py upload
release/docker: docker/build/full release/docker/github
release/docker/github: docker/build/full
set -ux
declare -a IMAGES=('bake:core' 'bake:latest')
for IMAGE in "${IMAGES[@]}"; do
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
release/docker/dockerhub: docker/build/full
docker-compose push
ci: ci/setup
set -ex && mkdir -p reports/pytest && pytest --junitxml=reports/pytest/report.xml
ci/setup: @skip:key=Pipfile.lock
pipenv install --dev --deploy --system
random/python/ip:
#!/usr/bin/env python
import requests
r = requests.get('https://httpbin.org/ip')
print(r.json()['origin'].split(',')[0])
random/clis:
bake:red 'Testing subcommands.'
bake:step 'sub-task'
echo 'I should *not* be red.' | bake:red | bake:indent | bake:notred
echo 'I *should* be red.' | bake:red --always | bake:indent
echo "$(echo test $(bake:red test) test | bake:indent)"
echo
random/kr:
sparkescakesparkles="✨ 🍰 ✨" | pbcopy
echo "$sparkescakesparkles" | pbcopy
echo 'KR Copied!' | bake:red --fg cyan
lazy_brew() {
set -e
# Install jq if it's not available.
if ! which jq > /dev/null; then
set -ex && brew install jq
fi
# Install requested packages, if they aren't installed.
for PACKAGE in "$@"; do
if ! brew info --installed --json | jq 'map(.name) | index( "$PACKAGE" )' > /dev/null; then
set -ex && brew install "$PACKAGE" > /dev/null
fi
done
}