add builad and deploy gitea pipeline
This commit is contained in:
		
							
								
								
									
										93
									
								
								.gitea/workflows/main.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										93
									
								
								.gitea/workflows/main.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,93 @@ | ||||
| name: Gitea Action Maven build | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: ['master'] | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - name: Checkout the repo | ||||
|         uses: actions/checkout@v4 | ||||
|  | ||||
|       - name: Set up Maven | ||||
|         uses: stCarolas/setup-maven@v5 | ||||
|         with: | ||||
|           maven-version: 3.9.9 | ||||
|  | ||||
|       - name: Set up JDK 21 | ||||
|         uses: actions/setup-java@v4 | ||||
|         with: | ||||
|           java-version: 21 | ||||
|           distribution: 'oracle' | ||||
|           cache: 'maven' | ||||
|  | ||||
|       - name: Build, Test and Package with Maven | ||||
|         run: mvn -B verify --file pom.xml -e | ||||
|  | ||||
|       - name: Upload artifact | ||||
|         uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: searchengine-artifact | ||||
|           path: | | ||||
|             target/*.jar | ||||
|             Dockerfile | ||||
|             docker-compose.yml | ||||
|  | ||||
|       - name: Create Maven settings.xml | ||||
|         run: | | ||||
|           cat <<EOF > ~/.m2/settings.xml | ||||
|           <settings> | ||||
|             <servers> | ||||
|               <server> | ||||
|                 <id>gitea</id> | ||||
|                 <username>${{ vars.OWNER }}</username> | ||||
|                 <password>${{ secrets.ACCESS_TOKEN }}</password> | ||||
|               </server> | ||||
|             </servers> | ||||
|           </settings> | ||||
|           EOF | ||||
|  | ||||
|       - name: Replace {owner} in pom.xml | ||||
|         run: sed -i "s/{owner}/${{ vars.OWNER }}/g" pom.xml | ||||
|  | ||||
|       - name: Deploy to Gitea Packages | ||||
|         run: mvn deploy | ||||
|  | ||||
|   deploy: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: build | ||||
|     steps: | ||||
|       - name: Download artifact | ||||
|         uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: searchengine-artifact | ||||
|           path: artifact | ||||
|  | ||||
|       - name: Install SSH Key | ||||
|         uses: shimataro/ssh-key-action@v2 | ||||
|         with: | ||||
|           key: ${{ secrets.SSH_PRIVATE_KEY }} | ||||
|           known_hosts: ${{ secrets.KNOWN_HOSTS }} | ||||
|       - name: Create Directory on Local Server | ||||
|         run: ssh -T ${{ vars.DEPLOY_USER }}@${{ vars.DEPLOY_HOST }} mkdir -p ${{ vars.DEPLOY_PATH }} | ||||
|  | ||||
|       - name: Deploy to Local Server | ||||
|         run: scp -r artifact/* ${{ vars.DEPLOY_USER }}@${{ vars.DEPLOY_HOST }}:${{ vars.DEPLOY_PATH }} | ||||
|  | ||||
|       - name: Create .env file on Local Server | ||||
|         run: | | ||||
|           ssh -T ${{ vars.DEPLOY_USER }}@${{ vars.DEPLOY_HOST }} << EOF | ||||
|           echo "DB_USER=${{ vars.DB_USER }}" > ${{ vars.DEPLOY_PATH }}/.env | ||||
|           echo "DB_PASSWORD=${{ vars.DB_PASSWORD }}" >> ${{ vars.DEPLOY_PATH }}/.env | ||||
|           echo "DB_URL=${{ vars.DB_URL }}" >> ${{ vars.DEPLOY_PATH }}/.env | ||||
|           EOF | ||||
|  | ||||
|       - name: Build and Run Docker Image with Docker Compose | ||||
|         run: | | ||||
|           ssh -T ${{ vars.DEPLOY_USER }}@${{ vars.DEPLOY_HOST }} << EOF | ||||
|           cd ${{ vars.DEPLOY_PATH }} | ||||
|           docker compose down | ||||
|           docker compose up -d --build | ||||
|           EOF | ||||
		Reference in New Issue
	
	Block a user
	 Eduard Kuksa
					Eduard Kuksa