Skip to content

45 save retrofit strategy query parameters (#50) #31

45 save retrofit strategy query parameters (#50)

45 save retrofit strategy query parameters (#50) #31

Workflow file for this run

name: docker
on:
push:
branches:
- main
- develop
- 'release/*'
tags:
- '*'
pull_request:
env:
MAIN_REPO: IN-CORE/maestro-service
GITHUB_PUSH: "true"
PLATFORMS: "linux/amd64,linux/arm64"
jobs:
# ----------------------------------------------------------------------
# DOCKER BUILD
# ----------------------------------------------------------------------
docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
# checkout source code
- uses: actions/checkout@v3
# calculate some variables that are used later
- name: version information
run: |
if [ "${{ github.event.release.target_commitish }}" != "" ]; then
BRANCH="${{ github.event.release.target_commitish }}"
elif [[ $GITHUB_REF =~ pull ]]; then
BRANCH="$(echo $GITHUB_REF | sed 's#refs/pull/\([0-9]*\)/merge#PR-\1#')"
else
BRANCH=${GITHUB_REF_NAME}
fi
# should we push to dockerhub, and is there a README
DOCKERHUB_PUSH="false"
DOCKERHUB_README="false"
#if [ "${{ github.repository }}" == "${{ env.MAIN_REPO }}" ]; then
# if [ "${{ secrets.DOCKERHUB_USERNAME }}" != "" -a "${{ secrets.DOCKERHUB_PASSWORD }}" != "" ]; then
# DOCKERHUB_PUSH="true"
# if [ -e "README.md" ]; then
# DOCKERHUB_README="true"
# fi
# fi
#fi
# should we push to NCSA
NCSAHUB_PUSH="false"
if [ "${{ github.repository }}" == "${{ env.MAIN_REPO }}" ]; then
if [ "${{ secrets.HUB_USERNAME }}" != "" -a "${{ secrets.HUB_PASSWORD }}" != "" ]; then
NCSAHUB_PUSH="true"
fi
fi
# figure out the versions
if [ "$BRANCH" == "main" ]; then
version="$(awk '/version / { print tolower($3) }' pyproject.toml | sed 's/"//g' | head -1)"
tags="latest"
oldversion=""
while [ "${oldversion}" != "${version}" ]; do
oldversion="${version}"
tags="${tags} ${version}"
version=${version%.*}
done
elif [ "$BRANCH" == "develop" ]; then
version="develop"
tags="develop"
else
version="test"
tags="${BRANCH}"
fi
push_tags=""
OWNER=${GITHUB_REPOSITORY_OWNER,,}
for tag in ${tags}; do
if [ "${DOCKERHUB_PUSH}" == "true" ]; then
push_tags="${push_tags}incore/maestro:${tag}"
fi
if [ "${NCSAHUB_PUSH}" == "true" ]; then
push_tags="${push_tags}hub.ncsa.illinois.edu/incore/maestro:${tag},"
fi
if [ "${GITHUB_PUSH}" == "true" ]; then
push_tags="${push_tags}ghcr.io/${OWNER}/maestro:${tag},"
fi
done
push_tags="${push_tags%,*}"
echo "BRANCH=${BRANCH}"
echo "VERSION=${version}"
echo "TAGS=${tags}"
echo "PUSH_TAGS=${push_tags}"
echo "DOCKERHUB_PUSH=${DOCKERHUB_PUSH}" >> $GITHUB_ENV
echo "DOCKERHUB_README=${DOCKERHUB_README}" >> $GITHUB_ENV
echo "NCSAHUB_PUSH=${NCSAHUB_PUSH}" >> $GITHUB_ENV
echo "BRANCH=${BRANCH}" >> $GITHUB_ENV
echo "VERSION=${version}" >> $GITHUB_ENV
echo "TAGS=${push_tags}" >> $GITHUB_ENV
# setup docker build
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
- name: Inspect Builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
# login to registries
- name: Login to DockerHub
if: env.DOCKERHUB_PUSH == 'true'
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Login to NCSA
if: env.NCSAHUB_PUSH == 'true'
uses: docker/login-action@v2
with:
registry: hub.ncsa.illinois.edu
username: ${{ secrets.HUB_USERNAME }}
password: ${{ secrets.HUB_PASSWORD }}
- name: Login to GitHub Container Registry
if: env.GITHUB_PUSH == 'true'
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
# build and push docker images
- name: Build and push
uses: docker/build-push-action@v3
with:
platforms: ${{ env.PLATFORMS }}
cache-from: type=gha
cache-to: type=gha,mode=max
tags: ${{ env.TAGS }}
push: true
build-args: |
NPM_TOKEN=${{ secrets.GITHUB_TOKEN }}