Skip to content

fixed dockerfile path issue #6

fixed dockerfile path issue

fixed dockerfile path issue #6

name: All in One Test
on:
push:
branches:
- feature/docker-image
# define the workflow that will trigger this workflow to run
# workflow_run:
# workflows: [sharing data in a workflow]
# types:
# - completed
# allow the workflow to run manually with version as input
# workflow_dispatch:
# inputs:
# build_version:
# description: 'Crawler Version Number'
# required: false
# type: string
# manually set the version number of testing purpose
env:
manual_build_version: 2.99
jobs:
# job to build the base crawler image
build-image:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: feature/docker-image
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
# download the crawler-info file from the maven build workflow
#- name: Download artifact
# id: download-artifact
# uses: dawidd6/action-download-artifact@v2
# with:
# workflow: mvn-build-upload.yml
# branch: dk-actions-v4
# name: crawler-info
# if_no_artifact_found: fail
# check which version value whould be used
- name: check condition
uses: haya14busa/action-cond@v1
id: version_value_check
with:
cond: $manual_build_version == ''
#cond: ${{ inputs.build_version == '' }}
if_true: $(cat pom.xml | grep -m1 "version" | sed 's/<.*>\(.*\)<.*>/\1/' | sed 's/^[ ]*//g')
#if_false: ${{ inputs.build_version }}
if_false: $manual_build_version
# assign value to env variable for later use
- name: Use conditional value
run: echo "version=${{ steps.version_value_check.outputs.value }}" >> $GITHUB_ENV
# print the value of the env version variable for debugging use
- name: print the value of GITHUB_ENV:version
run: |
echo "read-data-version:$(cat pom.xml | grep -m1 "version" | sed 's/<.*>\(.*\)<.*>/\1/' | sed 's/^[ ]*//g')"
#echo "input-version: ${{ inputs.build_version }}"
echo "input-version: $manual_build_version"
echo "GITHUB_ENV_Version: ${{env.version}}"
# build the crawler base docker image
- name: Build docker base image
run: |
pwd
ls -a
docker build . --file .github/workflows/docker-files/Dockerfile-base --tag ${{env.version}}-crawler-base
# build the crawler latest docker image
#- name: Build docker latest image
# run: docker build . --file Dockerfile-base --tag latest
# update the FROM statement in Dockerfile with the right version number
- name: Update Dockerfile with version to build
run: sed -i 's/replace-this-with-real-version/${{env.version}}/g' .github/workflows/docker-files/Dockerfile-com
### Repeat this section of code to build image for new committers, make sure the sed cmd
### is finding the right lines to replace
- name: Build new es committer image
run: |
cp .github/workflows/docker-files/Dockerfile-com .github/workflows/docker-files/Dockerfile-com-es
sed -i 's/replace-this-with-committer-files-in-dockerfile/mkdir .\/es-folder/g' .github/workflows/docker-files/Dockerfile-com-es
more .github/workflows/docker-files/Dockerfile-com-es
# docker build . --file ./Dockerfile-com --build-arg build_version=${{env.version}} --tag ${{env.version}}-crawler-es
### Repeat section
- name: Build new solr committer image
run: |
cp .github/workflows/docker-files/Dockerfile-com .github/workflows/docker-files/Dockerfile-com-solr
sed -i 's/replace-this-with-committer-files-in-dockerfile/mkdir .\/solr-folder/g' .github/workflows/docker-files/Dockerfile-com-solr
more .github/workflows/docker-files/Dockerfile-com-solr
#docker build . --file ./Dockerfile-com --build-arg build_version=${{env.version}} --tag ${{env.version}}-crawler-solr
#docker image ls -a
# login to Dockerhub
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKER_HUB_USERNAME }}
# password: ${{ secrets.DOCKER_HUB_PASSWORD }}
# ### For additional committers, repeat the docker image tag and docker push cmd
# # Tag and push images onto Dockerhub repo
# - name: Push images to Dockerhub
# run: |
# #docker image tag latest norconex/crawler:latest
# docker image tag ${{env.version}}-crawler-base norconex/crawler:${{env.version}}-crawler-base
# docker image tag ${{env.version}}-crawler-es norconex/crawler:${{env.version}}-crawler-es
# docker image tag ${{env.version}}-crawler-solr norconex/crawler:${{env.version}}-crawler-solr
# #docker push norconex/crawler:latest
# docker push norconex/crawler:${{env.version}}-crawler-base
# docker push norconex/crawler:${{env.version}}-crawler-es
# docker push norconex/crawler:${{env.version}}-crawler-solr