name: Docker Build and Push on: push: branches: - main - dev jobs: build-and-push: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Login to Docker Hub run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin - name: Build and push Docker image env: DOCKER_IMAGE_NAME: your-docker-image-name run: | if [ "${{ github.ref }}" == "refs/heads/main" ]; then DOCKER_TAG="latest" elif [ "${{ github.ref }}" == "refs/heads/dev" ]; then DOCKER_TAG="dev" else DOCKER_TAG="other" fi docker build -t $DOCKER_IMAGE_NAME . docker tag $DOCKER_IMAGE_NAME:latest ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKER_IMAGE_NAME:$DOCKER_TAG docker push ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKER_IMAGE_NAME:$DOCKER_TAG