Skip to content

Main to Dev

Main to Dev #85

Workflow file for this run

name: CI
on:
push:
branches:
- main
- develop
- 'release/*'
tags:
- '*'
pull_request:
env:
MAIN_REPO: ncsa/standalone-smm-analytics
jobs:
# ----------------------------------------------------------------------
# DOCKER BUILD
# ----------------------------------------------------------------------
docker:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
name:
- autophrase
- histogram
- check_screen_name
- classification_predict
- classification_train
- classification_split
- collect_reddit_comment
- crimson_hexagon_monitors
- image_crawler
- name_entity_recognition
- network_analysis
- preprocessing
- screen_name_prompt
- sentiment_analysis
- topic_modeling
- clowder_create_collection
- clowder_create_dataset
- clowder_create_space
- clowder_list
- clowder_upload_file
include:
- name: autophrase
dockerfile: Dockerfile
workdir: containerized_analytics/smile/autophrase
docker_repo_tag: socialmediamacroscope/autophrase
github_repo_tag: ncsa/autophrase
- name: histogram
dockerfile: Dockerfile
workdir: containerized_analytics/smile/histogram
docker_repo_tag: socialmediamacroscope/histogram
github_repo_tag: ncsa/histogram
- name: check_screen_name
dockerfile: Dockerfile
workdir: containerized_analytics/smile/check_screen_name
docker_repo_tag: socialmediamacroscope/check_screen_name
github_repo_tag: ncsa/check_screen_name
- name: classification_predict
dockerfile: Dockerfile
workdir: containerized_analytics/smile/classification_predict
docker_repo_tag: socialmediamacroscope/classification_predict
github_repo_tag: ncsa/classification_predict
- name: classification_train
dockerfile: Dockerfile
workdir: containerized_analytics/smile/classification_train
docker_repo_tag: socialmediamacroscope/classification_train
github_repo_tag: ncsa/classification_train
- name: classification_split
dockerfile: Dockerfile
workdir: containerized_analytics/smile/classification_split
docker_repo_tag: socialmediamacroscope/classification_split
github_repo_tag: ncsa/classification_split
- name: collect_reddit_comment
dockerfile: Dockerfile
workdir: containerized_analytics/smile/collect_reddit_comment
docker_repo_tag: socialmediamacroscope/collect_reddit_comment
github_repo_tag: ncsa/collect_reddit_comment
- name: crimson_hexagon_monitors
dockerfile: Dockerfile
workdir: containerized_analytics/smile/crimson_hexagon_monitors
docker_repo_tag: socialmediamacroscope/crimson_hexagon_monitors
github_repo_tag: ncsa/crimson_hexagon_monitors
- name: image_crawler
dockerfile: Dockerfile
workdir: containerized_analytics/smile/image_crawler
docker_repo_tag: socialmediamacroscope/image_crawler
github_repo_tag: ncsa/image_crawler
- name: name_entity_recognition
dockerfile: Dockerfile
workdir: containerized_analytics/smile/name_entity_recognition
docker_repo_tag: socialmediamacroscope/name_entity_recognition
github_repo_tag: ncsa/name_entity_recognition
- name: network_analysis
dockerfile: Dockerfile
workdir: containerized_analytics/smile/network_analysis
docker_repo_tag: socialmediamacroscope/network_analysis
github_repo_tag: ncsa/network_analysis
- name: preprocessing
dockerfile: Dockerfile
workdir: containerized_analytics/smile/preprocessing
docker_repo_tag: socialmediamacroscope/preprocessing
github_repo_tag: ncsa/preprocessing
- name: screen_name_prompt
dockerfile: Dockerfile
workdir: containerized_analytics/smile/screen_name_prompt
docker_repo_tag: socialmediamacroscope/screen_name_prompt
github_repo_tag: ncsa/screen_name_prompt
- name: sentiment_analysis
dockerfile: Dockerfile
workdir: containerized_analytics/smile/sentiment_analysis
docker_repo_tag: socialmediamacroscope/sentiment_analysis
github_repo_tag: ncsa/sentiment_analysis
- name: topic_modeling
dockerfile: Dockerfile
workdir: containerized_analytics/smile/topic_modeling
docker_repo_tag: socialmediamacroscope/topic_modeling
github_repo_tag: ncsa/topic_modeling
- name: clowder_create_collection
dockerfile: Dockerfile
workdir: containerized_analytics/clowder/clowder_create_collection
docker_repo_tag: socialmediamacroscope/clowder_create_collection
github_repo_tag: ncsa/clowder_create_collection
- name: clowder_create_dataset
dockerfile: Dockerfile
workdir: containerized_analytics/clowder/clowder_create_dataset
docker_repo_tag: socialmediamacroscope/clowder_create_dataset
github_repo_tag: ncsa/clowder_create_dataset
- name: clowder_create_space
dockerfile: Dockerfile
workdir: containerized_analytics/clowder/clowder_create_space
docker_repo_tag: socialmediamacroscope/clowder_create_space
github_repo_tag: ncsa/clowder_create_space
- name: clowder_list
dockerfile: Dockerfile
workdir: containerized_analytics/clowder/clowder_list
docker_repo_tag: socialmediamacroscope/clowder_list
github_repo_tag: ncsa/clowder_list
- name: clowder_upload_file
dockerfile: Dockerfile
workdir: containerized_analytics/clowder/clowder_upload_file
docker_repo_tag: socialmediamacroscope/clowder_upload_file
github_repo_tag: ncsa/clowder_upload_file
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:
dockerfile: ${{ matrix.dockerfile }}
name: ${{ matrix.docker_repo_tag }}
no_push: true
workdir: ${{ matrix.workdir }}
- 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: ${{ matrix.docker_repo_tag }}
username: ${{ secrets.HUB_USERNAME }}
password: ${{ secrets.HUB_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 }}