38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: Build and Publish Docker Image
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches:
 | |
|       - main 
 | |
|     paths:
 | |
|       - '.github/runner/docker/**' 
 | |
|   schedule:
 | |
|     - cron: '0 0 * * *'  
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     runs-on: ubuntu-latest #To ensure it always builds we use the github runner with all the right tooling
 | |
| 
 | |
|     steps:
 | |
|       - name: Checkout code
 | |
|         uses: actions/checkout@v3
 | |
| 
 | |
|       - name: Log in to GHCR
 | |
|         uses: docker/login-action@v2
 | |
|         with:
 | |
|           registry: ghcr.io
 | |
|           username: ${{ github.actor }}
 | |
|           password: ${{ secrets.GITHUB_TOKEN }}
 | |
| 
 | |
|       - name: Build Docker image
 | |
|         run: |
 | |
|           repo_name=${{ github.repository }}  # Get repository name
 | |
|           repo_name_lower=$(echo $repo_name | tr '[:upper:]' '[:lower:]')  # Convert to lowercase
 | |
|           docker build -t ghcr.io/$repo_name_lower/gh-runner-self:latest -f .github/runner/docker/gh-runner-self.dockerfile .
 | |
|   
 | |
|       - name: Push Docker image to GHCR
 | |
|         run: |
 | |
|           repo_name=${{ github.repository }}  # Get repository name
 | |
|           repo_name_lower=$(echo $repo_name | tr '[:upper:]' '[:lower:]')  # Convert to lowercase
 | |
|           docker push ghcr.io/$repo_name_lower/gh-runner-self:latest
 | 
