Добавил CI/CD
This commit is contained in:
		
							
								
								
									
										59
									
								
								.gitea/workflows/gitea-push-docker.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								.gitea/workflows/gitea-push-docker.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| name: Create and publish a Docker image | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: ["main"] | ||||
|  | ||||
| env: | ||||
|   REGISTRY: git.zetcraft.ru | ||||
|  | ||||
| jobs: | ||||
|   publish: | ||||
|     runs-on: ubuntu-latest | ||||
|     name: Publish image | ||||
|     container: catthehacker/ubuntu:act-latest | ||||
|     permissions: | ||||
|       contents: read | ||||
|       packages: write | ||||
|  | ||||
|     steps: | ||||
|       - name: Checkout repository | ||||
|         uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: Log in to the Container registry | ||||
|         uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 | ||||
|         with: | ||||
|           registry: ${{ env.REGISTRY }} | ||||
|           username: ${{ gitea.actor }} | ||||
|           password: ${{ secrets.TOKEN }} | ||||
|  | ||||
|       - name: Extract metadata (tags, labels) for Docker | ||||
|         id: meta | ||||
|         uses: https://github.com/docker/metadata-action@v4 | ||||
|         with: | ||||
|           images: ${{ env.REGISTRY }}/${{ gitea.repository }} | ||||
|  | ||||
|       - name: Build and push Docker image | ||||
|         uses: docker/build-push-action@f2a1d5e99d037542a71f64918e516c093c6f3fc4 | ||||
|         with: | ||||
|           context: ./ | ||||
|           push: true | ||||
|           tags: ${{ steps.meta.outputs.tags }} | ||||
|           labels: ${{ steps.meta.outputs.labels }} | ||||
|   deploy: | ||||
|     needs: publish | ||||
|     name: Deploy image | ||||
|     runs-on: ubuntu-latest | ||||
|  | ||||
|     steps: | ||||
|       - name: install ssh keys | ||||
|         # check this thread to understand why its needed: | ||||
|         # <https://stackoverflow.com/a/70447517> | ||||
|         run: | | ||||
|           install -m 600 -D /dev/null ~/.ssh/id_rsa | ||||
|           echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa | ||||
|           ssh-keyscan -H ${{ secrets.SSH_HOST }} > ~/.ssh/known_hosts | ||||
|       - name: connect and pull | ||||
|         run: ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "cd ${{ secrets.WORK_DIR }} && docker compose pull && docker compose up -d && docker image prune && exit" | ||||
|       - name: cleanup | ||||
|         run: rm -rf ~/.ssh | ||||
		Reference in New Issue
	
	Block a user