From ebb38171c512a95f6cd1d5928a9b2876951dbbf1 Mon Sep 17 00:00:00 2001 From: YONG WOOK KIM Date: Wed, 17 Jan 2024 15:55:52 -0600 Subject: [PATCH] revert back to original --- .github/workflows/smile-server.yaml | 451 +++++++++------------------- 1 file changed, 149 insertions(+), 302 deletions(-) diff --git a/.github/workflows/smile-server.yaml b/.github/workflows/smile-server.yaml index 3520af02..568e6153 100644 --- a/.github/workflows/smile-server.yaml +++ b/.github/workflows/smile-server.yaml @@ -1,5 +1,9 @@ name: smile-server +defaults: + run: + working-directory: www + on: push: branches: @@ -11,329 +15,172 @@ on: - '*' 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: - contents: read packages: write steps: - # checkout source code - - uses: actions/checkout@v2 + # 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- + 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 - # 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 + OWNER=${{ github.repository_owner }} + OWNER_LC=${OWNER,,} - if [ "$BRANCH" == "main" ]; then - VERSION=$(grep '"version"' www/package.json | sed 's/.*"\([0-9\.]*\)", *$/\1/') - VERSIONS="latest" - OLDVERSION="" - TMPVERSION=$VERSION - while [ "$OLDVERSION" != "$TMPVERSION" ]; do - VERSIONS="${VERSIONS} ${TMPVERSION}" - OLDVERSION="${TMPVERSION}" - TMPVERSION=$(echo ${OLDVERSION} | sed 's/\.[0-9]*$//') + # 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 + 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 + + # 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 + IMAGES="${IMAGES}ghcr.io/${OWNER_LC}/${IMAGE}:${tag}," 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 + 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 + + # 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: Print Version tag - run: echo "${{ env.TAGS }}" + - 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 GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - name: Login to DockerHub + if: env.DOCKERHUB_PUSH == 'true' + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_PASSWORD }} - - name: Build docker image - if: | - github.repository == env.MAIN_REPO -# (env.GITHUB_BRANCH == 'main' || env.GITHUB_BRANCH == 'develop') - uses: elgohr/Publish-Docker-Github-Action@3.04 - with: - name: smile-server - no_push: true - workdir: www + - 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: Publish doc image to Docker Hub - if: | - github.repository == env.MAIN_REPO -# github.event_name == 'push' && -# env.GITHUB_BRANCH == 'main' - uses: elgohr/Publish-Docker-Github-Action@3.04 - with: - registry: docker.io - name: socialmediamacroscope/smile-server - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_PASSWORD }} - tags: "${{ env.TAGS }}" - workdir: ${{ matrix.workdir }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Publish doc image to Github - if: | - github.repository == env.MAIN_REPO && - github.event_name == 'push' && - env.GITHUB_BRANCH == 'develop' - uses: elgohr/Publish-Docker-Github-Action@3.04 - with: - registry: ghcr.io - name: ncsa/smiles-server - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - tags: "${{ env.TAGS }}" - workdir: ${{ matrix.workdir }} + # 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 }} -#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- -# 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/Publish-Docker-Github-Action@3.04 -# 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/Publish-Docker-Github-Action@3.04 -# with: -# registry: docker.io -# name: ${{ matrix.docker_repo_tag }} -# username: ${{ secrets.DOCKERHUB_USERNAME }} -# password: ${{ secrets.DOCKERHUB_PASSWORD }} -# tags: ${{ env.IMAGES }} -# workdir: ./www \ No newline at end of file + # 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