Skip to content

Only tagged version push to docker.io #55

Only tagged version push to docker.io

Only tagged version push to docker.io #55

Workflow file for this run

name: smile-server
on:
push:
branches:
- main
- develop
- 'release/*'
tags:
- '*'
pull_request:
env:
MAIN_REPO: ncsa/standalone-smm-smile
jobs:
# ----------------------------------------------------------------------
# DOCKER BUILD
# ----------------------------------------------------------------------
docker:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
# checkout source code
- uses: actions/checkout@v2
# calculate version information
- name: version information
run: |
if [ "${{ github.event.release.target_commitish }}" != "" ]; then
BRANCH="${{ github.event.release.target_commitish }}"
elif [[ "${{github.event_name}}" == "pull_request" ]]; then
BRANCH="PR-${{github.event.pull_request.number}}"
else
BRANCH=${GITHUB_REF##*/}
fi
echo "GITHUB_BRANCH=${BRANCH}" >> $GITHUB_ENV
if [ "$BRANCH" == "main" ]; then
VERSION=$(cat manual_jb/content/_config.yml | grep "version" | head -1 | awk -F= "{print $2 }" | sed "s/[[:alpha:]|,|-|\"|:|#|[:space:]]//g" | sed "s/-//g")
VERSIONS="latest"
OLDVERSION=""
TMPVERSION=$VERSION
while [ "$OLDVERSION" != "$TMPVERSION" ]; do
VERSIONS="${VERSIONS} ${TMPVERSION}"
OLDVERSION="${TMPVERSION}"
TMPVERSION=$(echo ${OLDVERSION} | sed 's/\.[0-9]*$//')
done
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "TAGS=${VERSIONS}" >> $GITHUB_ENV
elif [ "$BRANCH" == "develop" ]; then
echo "VERSION=develop" >> $GITHUB_ENV
echo "TAGS=develop" >> $GITHUB_ENV
else
echo "VERSION=testing" >> $GITHUB_ENV
echo "TAGS=${BRANCH}" >> $GITHUB_ENV
fi
- name: Print Version tag
run: echo "${{ env.TAGS }}"
# login to registries
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build docker image
if: |
github.repository == env.MAIN_REPO &&
github.event_name == 'push' &&
(env.GITHUB_BRANCH == 'main' || env.GITHUB_BRANCH == 'develop')
uses: elgohr/[email protected]
with:
name: socialmediamacroscope/smile-server
no_push: true
workdir: www
- name: Publish doc image to Docker Hub
if: |
github.repository == env.MAIN_REPO &&
github.event_name == 'push' &&
env.GITHUB_BRANCH == 'main'
uses: elgohr/[email protected]
with:
registry: docker.io
name: smile-server
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
tags: "${{ env.TAGS }}"
workdir: ${{ matrix.workdir }}
- name: Publish doc image to Github
if: |
github.repository == env.MAIN_REPO &&
github.event_name == 'push' &&
env.GITHUB_BRANCH == 'develop'
uses: elgohr/[email protected]
with:
registry: ghcr.io
name: ${{ matrix.github_repo_tag }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
tags: "${{ env.TAGS }}"
workdir: ${{ matrix.workdir }}
#name: smile-server
#
#defaults:
# run:
# working-directory: www
#
#on:
# push:
# branches:
# - main
# - develop
# - 'release/*'
#
# tags:
# - '*'
#
# pull_request:
# branches:
# - main
# - develop
# - 'release/*'
#
## Certain actions will only run when this is the main repo.
#env:
# MAIN_REPO: ncsa/standalone-smm-smile
# DOCKERHUB_ORG: socialmediamacroscope
# NCSAHUB: hub.ncsa.illinois.edu/socialmediamacroscope
# PLATFORM: "linux/amd64"
#
#jobs:
# # ----------------------------------------------------------------------
# # DOCKER BUILD
# # ----------------------------------------------------------------------
# docker:
# runs-on: ubuntu-latest
# permissions:
# packages: write
#
# steps:
# # checkout source code
# - uses: actions/checkout@v3
#
# # calculate some variables that are used later
# - name: version information
# run: |
# # find out what the BRANCH is, in case of a PR we will use the PR-<number>
# 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##*/}
# fi
#
# OWNER=${{ github.repository_owner }}
# OWNER_LC=${OWNER,,}
#
# # calculate the version and all tags
# if [ "$BRANCH" == "main" ]; then
# version=$(grep '"version"' www/package.json | sed 's/.*"\([0-9\.]*\)", *$/\1/')
# tags="latest"
# oldversion=""
# tmpversion="${VERSION}"
# while [ "${oldversion}" != "${tmpversion}" ]; do
# oldversion="${tmpversion}"
# tags="${tags} ${tmpversion}"
# tmpversion=${tmpversion%.*}
# done
# else
# VERSION="$BRANCH"
# tags="$BRANCH"
# 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
# if env.GITHUB_BRANCH == 'main'; then
# DOCKERHUB_PUSH="true"
# if [ -e "README.md" ]; then
# DOCKERHUB_README="true"
# fi
# fi
# fi
# fi
#
# # should we push to github
# GITHUB_PUSH="false"
# if [ "${{ github.repository }}" == "${{ env.MAIN_REPO }}" ]; then
# if env.GITHUB_BRANCH == 'develop'; then
# GITHUB_PUSH="true"
# 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
#
# # create a list of all images to be pushed
# IMAGE="smile_server"
# IMAGES=""
# for tag in ${tags}; do
# if [ "$DOCKERHUB_PUSH" == "true" ]; then
# IMAGES="${IMAGES}${{ env.DOCKERHUB_ORG }}/${IMAGE}:${tag},"
# fi
# if [ "$NCSAHUB_PUSH" == "true" ]; then
# IMAGES="${IMAGES}${NCSAHUB}/${IMAGE}:${tag},"
# fi
# if [ "$GITHUB_PUSH" == "true" ]; then
# IMAGES="${IMAGES}ghcr.io/${OWNER_LC}/${IMAGE}:${tag},"
# fi
# done
# IMAGES="${IMAGES%,*}"
#
# # save the results in env
# echo "BRANCH=${BRANCH}"
# echo "VERSION=${VERSION}"
# echo "DOCKERHUB_README=${DOCKERHUB_README}"
# echo "DOCKERHUB_PUSH=${DOCKERHUB_PUSH}"
# echo "NCSAHUB_PUSH=${NCSAHUB_PUSH}"
# echo "IMAGES=${IMAGES}"
#
# echo "BRANCH=${BRANCH}" >> $GITHUB_ENV
# echo "VERSION=${VERSION}" >> $GITHUB_ENV
# echo "DOCKERHUB_README=${DOCKERHUB_README}" >> $GITHUB_ENV
# echo "DOCKERHUB_PUSH=${DOCKERHUB_PUSH}" >> $GITHUB_ENV
# echo "NCSAHUB_PUSH=${NCSAHUB_PUSH}" >> $GITHUB_ENV
# echo "IMAGES=${IMAGES}" >> $GITHUB_ENV
#
# - name: Print Images
# run: echo "${{ env.IMAGES }}"
#
# - name: Print Version tag
# run: echo "${{ env.TAGS }}"
#
# # 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 Hub
# 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
# uses: docker/login-action@v2
# with:
# registry: ghcr.io
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
#
# # build the docker images
# - name: Build and push docker
# uses: docker/build-push-action@v3
# with:
# context: ./www
# push: true
# platforms: ${{ env.PLATFORM }}
# cache-from: type=gha
# cache-to: type=gha
# tags: ${{ env.IMAGES }}
# build-args: |
# BRANCH: ${{ env.BRANCH }}
# VERSION=${{ env.VERSION }}
# BUILDNUMBER=${{ github.run_number }}
# GITSHA1=${{ github.sha }}
#
# # this will update the README of the dockerhub repo
# - name: Docker Hub Description
# if: env.DOCKERHUB_README == 'true'
# uses: peter-evans/dockerhub-description@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
# repository: ${{ env.DOCKERHUB_ORG }}/${{ github.event.repository.name }}
# readme-filepath: README.md
#
# - name: Publish image to Github
# if: env.GITHUB_PUSH == 'true'
# uses: elgohr/[email protected]
# with:
# registry: ghcr.io
# name: ${{ matrix.docker_repo_tag }}
# username: ${{ github.actor }}
# password: ${{ secrets.GITHUB_TOKEN }}
# tags: ${{ env.IMAGES }}
# workdir: ./www
#
# - name: Publish doc image to Docker Hub
# if: env.DOCKERHUB_PUSH == 'true'
# uses: elgohr/[email protected]
# with:
# registry: docker.io
# name: ${{ matrix.docker_repo_tag }}
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
# tags: ${{ env.IMAGES }}
# workdir: ./www