name: Build and Deploy on: push: branches: - main jobs: verify: name: Lint, typecheck, test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Node.js uses: actions/setup-node@v4 with: node-version: 22 - name: Install frontend deps run: npm ci - name: Frontend lint run: npm run lint - name: Frontend typecheck run: npm run typecheck - name: Frontend tests run: npm test - name: Install backend deps run: npm ci working-directory: backend - name: Backend typecheck run: npm run typecheck working-directory: backend - name: Backend tests run: npm test working-directory: backend build-push: name: Build & Push needs: verify runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Log in to Gitea registry uses: docker/login-action@v3 with: registry: ${{ vars.REGISTRY }} username: ${{ gitea.actor }} password: ${{ secrets.REGISTRY_TOKEN }} - name: Build and push web image uses: docker/build-push-action@v6 with: context: . target: web push: true tags: ${{ vars.REGISTRY }}/${{ gitea.repository_owner }}/thoosiecalendar:web - name: Build and push backend image uses: docker/build-push-action@v6 with: context: . target: backend push: true tags: ${{ vars.REGISTRY }}/${{ gitea.repository_owner }}/thoosiecalendar:backend