name: Build & Push Docker Images run-name: ${{ gitea.actor }} - ${{ gitea.ref }} on: push: branches: - main jobs: test-backend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install dependencies run: cd backend && npm ci - name: Run tests run: cd backend && npm test -- --ci test-frontend: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Install dependencies run: cd frontend && npm ci - name: Run tests run: cd frontend && npm test -- --run --reporter=basic build-backend: needs: [ test-backend, test-frontend ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: git.hacecalor.net username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push backend image uses: docker/build-push-action@v5 with: context: . file: ./backend/Dockerfile push: true tags: | git.hacecalor.net/ichitux/farmafinder-backend:latest git.hacecalor.net/ichitux/farmafinder-backend:${{ gitea.sha }} build-frontend: needs: [ test-backend, test-frontend ] runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: git.hacecalor.net username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push frontend image uses: docker/build-push-action@v5 with: context: ./frontend push: true tags: | git.hacecalor.net/ichitux/farmafinder-frontend:latest git.hacecalor.net/ichitux/farmafinder-frontend:${{ gitea.sha }} deploy: needs: [ build ] runs-on: ubuntu-latest steps: - name: SSH to remote server uses: appleboy/ssh-action@v1.0.3 with: host: ${{ secrets.HOST }} username: ${{ secrets.USERNAME }} password: ${{ secrets.PASSWORD }} port: ${{ secrets.PORT }} script: | cd /docker/FarmaFinder docker compose pull docker compose up -d