name: Build docker images, publish them, deploy to test server on: push: branches: ["master"] jobs: build: runs-on: ubuntu-latest steps: - name: Restore cached Primes id: maven-cache-restore uses: https://github.com/actions/cache/restore@v4 with: key: linux-maven path: ~/.m2/repository - uses: https://github.com/actions/checkout@v4 with: repository: 'learningpulse/learningpulse' ref: 'master' token: '${{ secrets.token }}' - name: 'Set up java 22' uses: https://github.com/actions/setup-java@v4 with: java-version: "22" distribution: "temurin" cache: maven - name: Setup maven if: steps.maven-cache.outputs.cache-hit != 'true' uses: https://github.com/stCarolas/setup-maven@v5 with: maven-version: 3.9.6 - name: Goto server run: cd server - name: Build with Maven run: mvn -Dtoken=${{ secrets.token }} clean compile jib:build -e - name: Cache local Maven repository uses: https://github.com/actions/cache/save@v4 id: maven-cache-save with: path: ~/.m2/repository key: linux-maven restore-keys: | linux-maven # TODO trigger pull with docker - name: executing remote ssh commands using ssh key uses: https://github.com/appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} key: ${{ secrets.KEY }} port: ${{ secrets.PORT }} script: cd services/server && git fetch --all && git reset --hard origin/dev && docker compose pull && docker compose up -d