1+ name : build-spark
2+ description : builds spark master and worker images
3+ inputs :
4+ SCALA_VERSION :
5+ description : ' Scala version to built images with'
6+ required : true
7+ SPARK_VERSION :
8+ description : ' Spark version to built images with'
9+ required : true
10+ HADOOP_VERSION :
11+ description : ' Hadoop version to built images with'
12+ required : true
13+ DOCKERHUB_USR :
14+ description : ' Docker Hub user to push images with'
15+ required : true
16+ DOCKERHUB_PWD :
17+ description : ' Docker Hub password to push images with'
18+ required : true
19+ IS_LATEST :
20+ description : ' Indicate whether the images is latest'
21+ required : false
22+ default : " "
23+ runs :
24+ using : " composite"
25+ steps :
26+ - name : Build Base Image
27+ shell : bash
28+ run : |
29+ cd ${GITHUB_WORKSPACE}/build
30+ docker build \
31+ --build-arg build_date="$(date -u +'%Y-%m-%d')" \
32+ --build-arg scala_version="${{ inputs.SCALA_VERSION }}" \
33+ -f docker/base/Dockerfile \
34+ -t base:latest .
35+ - name : Build Spark Base Image
36+ shell : bash
37+ run : |
38+ cd ${GITHUB_WORKSPACE}/build
39+ docker build \
40+ --build-arg build_date="$(date -u +'%Y-%m-%d')" \
41+ --build-arg spark_version="${{ inputs.SPARK_VERSION }}" \
42+ --build-arg hadoop_version="${{ inputs.HADOOP_VERSION }}" \
43+ -f docker/spark-base/Dockerfile \
44+ -t spark-base:${{ inputs.SPARK_VERSION }} .
45+ - name : Build & Push Spark Master Image
46+ shell : bash
47+ run : |
48+ cd ${GITHUB_WORKSPACE}/build
49+ docker build \
50+ --build-arg build_date="$(date -u +'%Y-%m-%d')" \
51+ --build-arg spark_version="${{ inputs.SPARK_VERSION }}" \
52+ -f docker/spark-master/Dockerfile \
53+ -t spark-master:${{ inputs.SPARK_VERSION }} .
54+ docker tag spark-master:${{ inputs.SPARK_VERSION }} ${{ inputs.DOCKERHUB_USR }}/spark-master:${{ inputs.SPARK_VERSION }}
55+ docker tag spark-master:${{ inputs.SPARK_VERSION }} ${{ inputs.DOCKERHUB_USR }}/spark-master:latest
56+ echo ${{ inputs.DOCKERHUB_PWD }} | docker login -u ${{ inputs.DOCKERHUB_USR }} --password-stdin
57+ if [ "${GITHUB_REF}" == "refs/heads/master" ]; then docker push ${{ inputs.DOCKERHUB_USR }}/spark-master:${{ inputs.SPARK_VERSION }}; fi
58+ if [ "${GITHUB_REF}" == "refs/heads/master" ] && [ "${{ inputs.IS_LATEST }}" == "true" ]; then docker push ${{ inputs.DOCKERHUB_USR }}/spark-master:latest; fi
59+ - name : Build & Push Spark Worker Image
60+ shell : bash
61+ run : |
62+ cd ${GITHUB_WORKSPACE}/build
63+ docker build \
64+ --build-arg build_date="$(date -u +'%Y-%m-%d')" \
65+ --build-arg spark_version="${{ inputs.SPARK_VERSION }}" \
66+ -f docker/spark-worker/Dockerfile \
67+ -t spark-worker:${{ inputs.SPARK_VERSION }} .
68+ docker tag spark-worker:${{ inputs.SPARK_VERSION }} ${{ inputs.DOCKERHUB_USR }}/spark-worker:${{ inputs.SPARK_VERSION }}
69+ docker tag spark-worker:${{ inputs.SPARK_VERSION }} ${{ inputs.DOCKERHUB_USR }}/spark-worker:latest
70+ echo ${{ inputs.DOCKERHUB_PWD }} | docker login -u ${{ inputs.DOCKERHUB_USR }} --password-stdin
71+ if [ "${GITHUB_REF}" == "refs/heads/master" ]; then docker push ${{ inputs.DOCKERHUB_USR }}/spark-worker:${{ inputs.SPARK_VERSION }}; fi
72+ if [ "${GITHUB_REF}" == "refs/heads/master" ] && [ "${{ inputs.IS_LATEST }}" == "true" ]; then docker push ${{ inputs.DOCKERHUB_USR }}/spark-worker:latest; fi
0 commit comments