Skip to content

Update main_rajuapp-devops.yml #6

Update main_rajuapp-devops.yml

Update main_rajuapp-devops.yml #6

# this is the deployment file
name: Docker Build and Push
on:
push:
branches:
- main
jobs:
build_and_push:
runs-on: self-hosted
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '20.x'
- name: Install dependencies
run: npm install
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
- name: Get short commit hash
id: commit_hash
run: echo "::set-output name=hash::$(git rev-parse --short HEAD)"
- name: Tag with environment and commit hash
id: tag_image
run: |
IMAGE_NAME="docker.io/raju00533/backend"
IMAGE_NAME="docker.io/raju00533/backend"
COMMIT_HASH=${{ steps.commit_hash.outputs.hash }}
if [ "${{ github.ref }}" == "refs/heads/main" ]; then
ENVIRONMENT="prod"
else
ENVIRONMENT="dev"
fi
TAG="${IMAGE_NAME}:${ENVIRONMENT}-${COMMIT_HASH}"
docker build -t $TAG .
echo $TAG >> .env
- name: Push Docker image
run: |
docker push ${{ steps.tag_image.outputs.TAG }}
if [ "${{ steps.tag_image.outputs.ENVIRONMENT }}" == "prod" ]; then
docker tag ${{ steps.tag_image.outputs.TAG }} "${IMAGE_NAME}:stable"
docker push "${IMAGE_NAME}:stable"
elif [ "${{ steps.tag_image.outputs.ENVIRONMENT }}" == "dev" ]; then
docker tag ${{ steps.tag_image.outputs.TAG }} "${IMAGE_NAME}:dev"
docker push "${IMAGE_NAME}:dev"
fi
- name: Increase version in package.json
run: |
npm version patch -m "Bump version to %s"
- name: Push changes to repository
uses: stefanzweifel/git-auto-commit-action@v4
with:
commit_message: "Bump version and Docker image tag"
commit_user_name: "Raju00533"
commit_user_email: "raju12ghimire@gmail.com"