54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			YAML
		
	
	
	
| name: Docker Build and Deploy
 | |
| 
 | |
| on:
 | |
|   push:
 | |
|     branches: [ main ]
 | |
|     paths:
 | |
|       - 'containers/**'
 | |
|       - 'Dockerfile*'
 | |
|       - '.gitea/workflows/docker.yml'
 | |
| 
 | |
| jobs:
 | |
|   build:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: Build Podman Images
 | |
|     steps:
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@v4
 | |
| 
 | |
|       - name: Set up Podman
 | |
|         run: |
 | |
|           sudo apt-get update
 | |
|           sudo apt-get install -y podman
 | |
|           podman --version          
 | |
| 
 | |
|       - name: Login to Container Registry
 | |
|         run: |
 | |
|           echo ${{ secrets.REGISTRY_PASSWORD }} | podman login ${{ secrets.REGISTRY_URL }} --username ${{ secrets.REGISTRY_USERNAME }} --password-stdin          
 | |
| 
 | |
|       - name: Build and push images
 | |
|         run: |
 | |
|           # 构建应用镜像
 | |
|           for dockerfile in containers/applications/*/Dockerfile; do
 | |
|             if [ -f "$dockerfile" ]; then
 | |
|               app_name=$(basename $(dirname "$dockerfile"))
 | |
|               echo "Building $app_name"
 | |
|               podman build -t "${{ secrets.REGISTRY_URL }}/$app_name:${{ github.sha }}" -f "$dockerfile" .
 | |
|               podman push "${{ secrets.REGISTRY_URL }}/$app_name:${{ github.sha }}"
 | |
|             fi
 | |
|           done          
 | |
| 
 | |
|   deploy-nomad:
 | |
|     runs-on: ubuntu-latest
 | |
|     name: Deploy to Nomad Cluster
 | |
|     needs: build
 | |
|     steps:
 | |
|       - name: Checkout
 | |
|         uses: actions/checkout@v4
 | |
| 
 | |
|       - name: Deploy to Nomad
 | |
|         run: |
 | |
|           # 这里可以通过 SSH 连接到 Nomad 管理节点进行部署
 | |
|           echo "Deploy to Nomad placeholder"
 | |
|           # 示例命令: nomad job run -var "image_tag=${{ github.sha }}" jobs/app.nomad          
 |