mirror of
https://github.com/kennethreitz/bake.git
synced 2026-06-05 23:00:17 +00:00
96 lines
2.6 KiB
Plaintext
96 lines
2.6 KiB
Plaintext
|
||
REGISTRY=${REGISTRY:-docker.pkg.github.com}
|
||
USERNAME=${USERNAME:-kennethreitz}
|
||
|
||
//: //system //python
|
||
//system:
|
||
lazy_brew pipenv
|
||
//python: @skip:key=Pipfile.lock //system
|
||
pipenv install --dev
|
||
|
||
test: docker/build
|
||
docker-compose run --entrypoint bash bake -c 'set -ex && pip3 install pytest && pytest'
|
||
release: test release//warn @confirm:secure release//pypi release//docker
|
||
bash: docker//bash
|
||
|
||
release//warn:
|
||
echo
|
||
echo "$(red 'Warning'): you are about to release a new version of $(red 'bake' --fg green)."
|
||
echo
|
||
echo 'Please do this simple math problem to prove this is not accidental.'
|
||
echo
|
||
docker/build:
|
||
# Build the images.
|
||
set -ex && docker-compose build
|
||
|
||
docker//bash: @interactive docker/build
|
||
docker-compose run --entrypoint bash bake
|
||
|
||
docker//build/full:
|
||
# Build the images.
|
||
set -ex && docker-compose build --no-cache
|
||
|
||
release//pypi: @interactive //python
|
||
pipenv run python setup.py upload
|
||
|
||
release//docker: docker/build release//docker/github
|
||
|
||
release//docker/github: docker/build
|
||
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
|
||
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])
|
||
|
||
cli:
|
||
red 'Testing sub–commands.'
|
||
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() {
|
||
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
|
||
}
|