mirror of
https://github.com/kennethreitz/bake.git
synced 2026-06-05 23:00:17 +00:00
95 lines
2.4 KiB
Plaintext
95 lines
2.4 KiB
Plaintext
|
||
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 sub–commands.'
|
||
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
|
||
}
|