forked from Ruderverein-Donau-Linz/rowt
		
	switch to gitea
This commit is contained in:
		
							
								
								
									
										103
									
								
								.gitea/workflows/action.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								.gitea/workflows/action.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,103 @@ | ||||
| name: CI/CD Pipeline | ||||
|  | ||||
| on: | ||||
|   push: | ||||
|     branches: | ||||
|       - main | ||||
|       - staging | ||||
|  | ||||
| env: | ||||
|   CARGO_TARGET: x86_64-unknown-linux-musl | ||||
|   SSH_HOST: ${{ secrets.SSH_HOST }} | ||||
|   SSH_USER: ${{ secrets.SSH_USER }} | ||||
|   SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | ||||
|  | ||||
| jobs: | ||||
|   build: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: rust:latest | ||||
|  | ||||
|     steps: | ||||
|       - name: Setup Environment | ||||
|         run: | | ||||
|           rustup target add $CARGO_TARGET | ||||
|           apt-get update -qq && apt-get install -y -qq sshpass musl musl-tools sqlite3 curl gnupg && mkdir -p /etc/apt/keyrings | curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list && apt-get update && apt-get install nodejs -y && apt-get install npm -y | ||||
|  | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: Run Test DB Script | ||||
|         run: ./test_db.sh | ||||
|  | ||||
|       - name: Build | ||||
|         run: | | ||||
|           cargo build --release --target $CARGO_TARGET | ||||
|           strip target/$CARGO_TARGET/release/rot | ||||
|           cd frontend && npm install && npm run build | ||||
|  | ||||
|       - name: Upload Artifacts | ||||
|         uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: build-artifacts | ||||
|           path: | | ||||
|             target/$CARGO_TARGET/release/rot | ||||
|             static | ||||
|           retention-days: 1 | ||||
|  | ||||
|   test: | ||||
|     runs-on: ubuntu-latest | ||||
|     container: rust:latest | ||||
|  | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: Run Tests | ||||
|         run: cargo test --verbose | ||||
|  | ||||
|   deploy-staging: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [build, test] | ||||
|     if: github.ref == 'refs/heads/staging' | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: Deploy to Staging | ||||
|         run: | | ||||
|           scp target/$CARGO_TARGET/release/rot $SSH_USER@$SSH_HOST:/home/k004373/rowing-staging/rot-updating | ||||
|           scp staging-diff.sql $SSH_USER@$SSH_HOST:/home/k004373/rowing-staging/ | ||||
|           scp -r static $SSH_USER@$SSH_HOST:/home/k004373/rowing-staging/ | ||||
|           scp -r templates $SSH_USER@$SSH_HOST:/home/k004373/rowing-staging/ | ||||
|           scp -r svelte $SSH_USER@$SSH_HOST:/home/k004373/rowing-staging/ | ||||
|           ssh $SSH_USER@$SSH_HOST 'sudo systemctl stop rotstaging' | ||||
|           ssh $SSH_USER@$SSH_HOST 'rm /home/k004373/rowing-staging/db.sqlite && cp /home/k004373/rowing/db.sqlite /home/k004373/rowing-staging/db.sqlite && mkdir -p /home/k004373/rowing-staging/svelte/build && mkdir -p /home/k004373/rowing-staging/data-ergo/thirty && mkdir -p /home/k004373/rowing-staging/data-ergo/dozen && sqlite3 /home/k004373/rowing-staging/db.sqlite < /home/k004373/rowing-staging/staging-diff.sql' | ||||
|           ssh $SSH_USER@$SSH_HOST 'mv  /home/k004373/rowing-staging/rot-updating /home/k004373/rowing-staging/rot' | ||||
|           ssh $SSH_USER@$SSH_HOST 'sudo systemctl start rotstaging' | ||||
|         env: | ||||
|           SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | ||||
|           SSH_HOST: ${{ secrets.SSH_HOST }} | ||||
|           SSH_USER: ${{ secrets.SSH_USER }} | ||||
|  | ||||
|   deploy-main: | ||||
|     runs-on: ubuntu-latest | ||||
|     needs: [build, test] | ||||
|     if: github.ref == 'refs/heads/main' | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v3 | ||||
|  | ||||
|       - name: Deploy to Main | ||||
|         run: | | ||||
|           scp target/$CARGO_TARGET/release/rot $SSH_USER@$SSH_HOST:/home/k004373/rowing/rot-updating | ||||
|           scp -r static $SSH_USER@$SSH_HOST:/home/k004373/rowing/ | ||||
|           scp -r templates $SSH_USER@$SSH_HOST:/home/k004373/rowing/ | ||||
|           scp -r svelte $SSH_USER@$SSH_HOST:/home/k004373/rowing/ | ||||
|           ssh $SSH_USER@$SSH_HOST 'mkdir -p /home/k004373/rowing/svelte/build && mkdir -p /home/k004373/rowing/data-ergo/thirty && mkdir -p /home/k004373/rowing/data-ergo/dozen' | ||||
|           ssh $SSH_USER@$SSH_HOST 'sudo systemctl stop rot' | ||||
|           ssh $SSH_USER@$SSH_HOST 'mv  /home/k004373/rowing/rot-updating /home/k004373/rowing/rot' | ||||
|           ssh $SSH_USER@$SSH_HOST 'sudo systemctl start rot' | ||||
|         env: | ||||
|           SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} | ||||
|           SSH_HOST: ${{ secrets.SSH_HOST }} | ||||
|           SSH_USER: ${{ secrets.SSH_USER }} | ||||
		Reference in New Issue
	
	Block a user