Skip to content

[BACK] DockerPush : MathieuSchl push 'Fix link in README' 🚀 #9

[BACK] DockerPush : MathieuSchl push 'Fix link in README' 🚀

[BACK] DockerPush : MathieuSchl push 'Fix link in README' 🚀 #9

name: "[BACK] Docker push"
run-name: "[BACK] DockerPush : ${{ github.actor }} push '${{ github.event.head_commit.message }}' 🚀"
on:
push:
paths:
- back_node/**
jobs:
Check:
runs-on: ubuntu-latest
outputs:
RUN_BUILD: ${{ steps.define_docker_data.outputs.run_build }}
VERSION: ${{ steps.define_docker_data.outputs.version }}
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Check if version already exist
id: define_docker_data
run: |
json_content=$(cat back_node/package.json)
version=$(echo "$json_content" | jq -r '.version')
echo "Target version : $version"
if [[ $(docker manifest inspect ${{ secrets.DOCKERHUB_USERNAME }}/karassistant-back:$version 2> /dev/null) != "" ]]; then
echo -e "\e[31mVersion $version already exist"
echo "Version $version already exist" >> $GITHUB_STEP_SUMMARY
else
echo -e "\e[32mBuild image version $version"
echo "run_build=yes" >> "$GITHUB_OUTPUT"
echo "version=$version" >> "$GITHUB_OUTPUT"
fi
Build_Push:
runs-on: ubuntu-latest
needs:
- Check
if: ${{ needs.Check.outputs.RUN_BUILD == 'yes' }}
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Echo version
env:
version: ${{ needs.Check.outputs.version }}
run: echo "Build image ${{ secrets.DOCKERHUB_USERNAME }}/karassistant-back:$version"
- name: Build and push (tagged version)
uses: docker/build-push-action@v4
with:
context: .
file: ./back_node/Dockerfile
push: true
tags: "${{ secrets.DOCKERHUB_USERNAME }}/karassistant-back:${{ needs.Check.outputs.version }}"
build-args: project_path=back_node
- name: Build and push (latest version)
uses: docker/build-push-action@v4
with:
context: .
file: ./back_node/Dockerfile
push: true
tags: "${{ secrets.DOCKERHUB_USERNAME }}/karassistant-back:latest"
build-args: project_path=back_node