All checks were successful
		
		
	
	Build and Deploy / build-and-deploy (push) Successful in 2m52s
				
			
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Build and Deploy
 | |
| 
 | |
| on:
 | |
|     push:
 | |
|         tags:
 | |
|             - "v*"
 | |
| 
 | |
| jobs:
 | |
|     build-and-deploy:
 | |
|         runs-on: ubuntu-latest
 | |
| 
 | |
|         steps:
 | |
|             - name: Checkout Code
 | |
|               uses: actions/checkout@v3
 | |
| 
 | |
|             - name: Extract Tag Name
 | |
|               id: extract_tag
 | |
|               run: |
 | |
|                   TAG_NAME=${GITHUB_REF#refs/tags/}
 | |
|                   echo "tag=$TAG_NAME" >> $GITHUB_OUTPUT
 | |
| 
 | |
|             - name: Set up Docker Buildx
 | |
|               uses: docker/setup-buildx-action@v3
 | |
| 
 | |
|             - name: Login to Docker Hub
 | |
|               uses: docker/login-action@v3
 | |
|               with:
 | |
|                   username: ${{ secrets.DOCKERHUB_USERNAME }}
 | |
|                   password: ${{ secrets.DOCKERHUB_PASSWORD }}
 | |
|                  
 | |
| 
 | |
|             - name: Build and Push Docker Image
 | |
|               uses: docker/build-push-action@v5
 | |
|               with:
 | |
|                   context: .
 | |
|                   file: ./Dockerfile
 | |
|                   push: true
 | |
|                   tags: |
 | |
|                       rooftopenergy/powermeter-frontend:${{ steps.extract_tag.outputs.tag }}
 | |
|                   build-args: |
 | |
|                       NEXT_PUBLIC_FASTAPI_URL=${{ secrets.NEXT_PUBLIC_FASTAPI_URL }}        
 | |
| 
 | |
|             - name: SSH and Deploy
 | |
|               uses: appleboy/ssh-action@master
 | |
|               with:
 | |
|                   host: ${{ secrets.SSH_HOST }}
 | |
|                   username: ${{ secrets.SSH_USER }}
 | |
|                   key: ${{ secrets.SSH_PRIVATE_KEY }}
 | |
|                   script: |
 | |
|                       echo "Using tag: ${{ steps.extract_tag.outputs.tag }}"
 | |
| 
 | |
|                       cd /root/power-meter-dashboard
 | |
| 
 | |
|                       sed -i "s|rooftopenergy/powermeter-frontend:.*|rooftopenergy/powermeter-frontend:${{ steps.extract_tag.outputs.tag }}|g" docker-compose.yml
 | |
| 
 | |
|                       docker compose down
 | |
|                       docker compose pull
 | |
|                       docker compose up -d
 | |
| 
 |