Skip to content

Merge pull request #57 from tonya1/python3.10 #92

Merge pull request #57 from tonya1/python3.10

Merge pull request #57 from tonya1/python3.10 #92

Workflow file for this run

on: [push]
jobs:
push:
runs-on: ubuntu-latest
name: Build and push the docker container
steps:
- uses: actions/checkout@v2
- name: Build the image
run: |
TAG="${GITHUB_REF#refs/heads/}"
TAG="${TAG#refs/tags/}"
TAG="${TAG//\//_}"
ORG=`echo "${{ secrets.DOCKER_PROJECT }}" | tr '[:upper:]' '[:lower:]'`
ORG="${ORG:-gridappsd}"
ORG="${ORG:+${ORG}/}"
IMAGE="${ORG}gridappsd_base"
TIMESTAMP=`date +'%y%m%d%H'`
GITHASH=`git log -1 --pretty=format:"%h"`
BUILD_VERSION="${TIMESTAMP}_${GITHASH}${BRANCH:+:$TAG}"
echo "BUILD_VERSION $BUILD_VERSION"
echo "TAG ${IMAGE}:${TIMESTAMP}_${GITHASH}"
# Pass gridappsd tag to docker-compose
docker build --no-cache --rm=true --build-arg TIMESTAMP="${BUILD_VERSION}" -f Dockerfile.gridappsd_base -t ${IMAGE}:${TIMESTAMP}_${GITHASH} .
status=$?
if [ $status -ne 0 ]; then
echo "Error: status $status"
exit 1
fi
- name: Log in to docker
run: |
if [ -n "${{ secrets.DOCKER_USERNAME }}" -a -n "${{ secrets.DOCKER_TOKEN }}" ]; then
echo " "
echo "Connecting to docker"
echo "${{ secrets.DOCKER_TOKEN }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
status=$?
if [ $status -ne 0 ]; then
echo "Error: status $status"
exit 1
fi
fi
- name: Push the image
run: |
TAG="${GITHUB_REF#refs/heads/}"
TAG="${TAG#refs/tags/}"
TAG="${TAG//\//_}"
ORG=`echo "${{ secrets.DOCKER_PROJECT }}" | tr '[:upper:]' '[:lower:]'`
ORG="${ORG:-gridappsd}"
ORG="${ORG:+${ORG}/}"
IMAGE="${ORG}gridappsd_base"
if [ -n "${{ secrets.DOCKER_USERNAME }}" -a -n "${{ secrets.DOCKER_TOKEN }}" ]; then
if [ -n "$TAG" -a -n "$ORG" ]; then
# Get the built container name
CONTAINER=`docker images --format "{{.Repository}}:{{.Tag}}" ${IMAGE} | grep -v ':builder'`
echo "docker push ${CONTAINER}"
docker push "${CONTAINER}"
status=$?
if [ $status -ne 0 ]; then
echo "Error: status $status"
exit 1
fi
echo "docker tag ${CONTAINER} ${IMAGE}:$TAG"
docker tag ${CONTAINER} ${IMAGE}:$TAG
status=$?
if [ $status -ne 0 ]; then
echo "Error: status $status"
exit 1
fi
echo "docker push ${IMAGE}:$TAG"
docker push ${IMAGE}:$TAG
status=$?
if [ $status -ne 0 ]; then
echo "Error: status $status"
exit 1
fi
fi
fi