name: push-pipeline on: push: branches: - main - ^v[0-9]*.[0-9]*.x$ tags: - "*" # pull_request: # branches: # - main # - v* # paths: # - 'pkg/**' # - 'frontend/**' jobs: get-envs: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - shell: bash run: | img_tag="" array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`) if [ ${array[1]} == "tags" ] then echo "tag build" img_tag=${GITHUB_REF#refs/*/v} elif [ ${array[1]} == "pull" ] then img_tag="pull-${{ github.event.number }}" else echo "non tag build" img_tag="latest" fi # This is a condition where image tag looks like "pull/" during pull request build NEW_IMG_TAG=`echo $img_tag | sed "s/\//-/g"` echo $NEW_IMG_TAG echo export IMG_TAG=$NEW_IMG_TAG >> env-vars echo export FRONTEND_IMAGE="frontend" >> env-vars echo export QUERY_SERVICE="query-service" >> env-vars echo export FLATTENER_PROCESSOR="flattener-processor" >> env-vars - name: Uploading envs uses: actions/upload-artifact@v2 with: name: env_artifact path: env-vars build-and-push-frontend: runs-on: ubuntu-latest needs: - get-envs steps: - name: Checkout code uses: actions/checkout@v2 - name: Downloading image artifact uses: actions/download-artifact@v2 with: name: env_artifact - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 with: version: latest - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & Push Frontend Docker Image shell: bash env: FRONTEND_DIRECTORY: "frontend" REPONAME: ${{ secrets.REPONAME }} FRONTEND_DOCKER_IMAGE: ${FRONTEND_IMAGE} DOCKER_TAG: ${IMG_TAG} run: | branch=${GITHUB_REF#refs/*/} array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`) if [ $branch == "main" ] || [ ${array[1]} == "tags" ] || [ ${array[1]} == "pull" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]] then source env-vars make build-push-frontend fi build-and-push-query-service: runs-on: ubuntu-latest needs: - get-envs steps: - name: Checkout code uses: actions/checkout@v2 - name: Downloading image artifact uses: actions/download-artifact@v2 with: name: env_artifact - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 with: version: latest - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & Push Query Service Docker Image shell: bash env: QUERY_SERVICE_DIRECTORY: "pkg/query-service" REPONAME: ${{ secrets.REPONAME }} QUERY_SERVICE_DOCKER_IMAGE: ${QUERY_SERVICE} DOCKER_TAG: ${IMG_TAG} run: | branch=${GITHUB_REF#refs/*/} array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`) if [ $branch == "main" ] || [ ${array[1]} == "tags" ] || [ ${array[1]} == "pull" ] ||[[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]] then source env-vars make build-push-query-service fi build-and-push-flattener: runs-on: ubuntu-latest needs: - get-envs steps: - name: Checkout code uses: actions/checkout@v2 - name: Downloading image artifact uses: actions/download-artifact@v2 with: name: env_artifact - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 with: version: latest - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & Push Flattener Processor Docker Image shell: bash env: FLATTENER_DIRECTORY: "pkg/processors/flattener" REPONAME: ${{ secrets.REPONAME }} FLATTERNER_DOCKER_IMAGE: ${FLATTENER_PROCESSOR} DOCKER_TAG: ${IMG_TAG} run: | branch=${GITHUB_REF#refs/*/} array=(`echo ${GITHUB_REF} | sed 's/\//\n/g'`) if [ $branch == "main" ] || [ ${array[1]} == "tags" ] || [ ${array[1]} == "pull" ] || [[ $branch =~ ^v[0-9]*.[0-9]*.x$ ]] then source env-vars make build-push-flattener fi