name: Gitea CI on: push: branches: [master, develop] pull_request: branches: [master, develop] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Setup Bun uses: oven-sh/setup-bun@v2 with: bun-version: '1.2.20' - name: Verify Bun installation run: bun --version - name: Install dependencies run: bun install --frozen-lockfile - name: Run linting run: bun run lint - name: Run type checking run: bun run check - name: Run unit tests run: bun run test:unit --run - name: Install Playwright browsers run: bunx playwright install --with-deps - name: Run E2E tests run: bun run test:e2e docker-build: runs-on: ubuntu-latest needs: test if: github.ref == 'refs/heads/master' steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Log in to Container Registry uses: docker/login-action@v2 with: registry: ${{ vars.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build and push Docker image uses: docker/build-push-action@v4 with: context: . platforms: linux/amd64,linux/arm64 push: true tags: | ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_REPOSITORY }}:latest ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_REPOSITORY }}:${{ github.sha }} cache-from: type=gha cache-to: type=gha,mode=max