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 }