name: PR Check on: pull_request: branches: [main, develop] jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Setup Go uses: actions/setup-go@v5 with: go-version: '1.24' - name: Setup Node uses: actions/setup-node@v4 with: node-version: '22' - name: Cache Go modules uses: actions/cache@v4 with: path: | /root/go/pkg/mod /home/runner/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Cache Node modules (web) uses: actions/cache@v4 with: path: web/node_modules key: ${{ runner.os }}-node-web-${{ hashFiles('web/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-web- - name: Cache Node modules (extension) uses: actions/cache@v4 with: path: extension/node_modules key: ${{ runner.os }}-node-ext-${{ hashFiles('extension/package-lock.json') }} restore-keys: | ${{ runner.os }}-node-ext- - name: Download dependencies run: go mod download - name: Build frontend run: | cd web npm ci npm run build - name: Build extension run: | cd extension npm ci npm run build npm run build:firefox - name: Vet run: go vet ./... - name: Test run: go test ./... -v -race -timeout 60s - name: Build binary run: | go build -o muyue ./cmd/muyue/ ./muyue version