mirror of
https://github.com/kennethreitz/bake.git
synced 2026-06-05 23:00:17 +00:00
84 lines
2.0 KiB
Plaintext
84 lines
2.0 KiB
Plaintext
|
|
REGISTRY=${REGISTRY:-docker.pkg.github.com}
|
|
USERNAME=${USERNAME:-kennethreitz}
|
|
|
|
install: install/system install/python
|
|
test: python/test docker/test
|
|
release: pypi/publish docker/release
|
|
|
|
python/test: install/python
|
|
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: test release/pypi release/docker
|
|
|
|
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:
|
|
#!/usr/bin/env python
|
|
import site
|
|
print(site)
|
|
|
|
|
|
|
|
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
|
|
}
|