name: Build-und-Deploy on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - name: ๐Ÿงพ Repository auschecken uses: actions/checkout@v3 - name: ๐Ÿ›  Baue Projekt ohne Tests run: | ./gradlew clean build -x test - name: ๐Ÿ“ฆ Archiviere Build-Artefakt uses: actions/upload-artifact@v4 with: name: app-jar path: build/libs/MyTimeTracker-0.0.1-SNAPSHOT.jar deploy: needs: build runs-on: ubuntu-latest steps: - name: ๐Ÿ“ฅ Lade Artefakt herunter uses: actions/download-artifact@v4 with: name: app-jar - name: ๐Ÿš€ Deployment via SSH uses: appleboy/scp-action@v0.1.7 with: host: ${{ secrets.DEPLOY_HOST }} username: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} source: MyTimeTracker-0.0.1-SNAPSHOT.jar target: /opt/mytimetracker/build/libs/ - name: ๐Ÿณ Starte Compose remote via SSH uses: appleboy/ssh-action@v1.0.0 with: host: ${{ secrets.DEPLOY_HOST }} username: ${{ secrets.DEPLOY_USER }} key: ${{ secrets.DEPLOY_KEY }} script: | cd /opt/mytimetracker docker compose down docker compose up -d --build