name: PR on: pull_request: branches: ["*"] jobs: client-build: name: Client runs-on: ubuntu-latest container: node:18-bullseye timeout-minutes: 15 defaults: run: working-directory: ./client steps: - name: Checkout code uses: actions/checkout@v2 - name: Installling dependencies run: npm install - name: Lint run: npx eslint --ext .svelte,.js,.ts --ignore-path .gitignore . - name: Formatting run: npx prettier --check --ignore-path .gitignore --plugin-search-dir=. "./**/*.(ts|json|js|svelte)" - name: Build run: npm run build env: VITE_SENTRY_DSN: https://examplePublicKey@o0.ingest.sentry.io/0 VITE_NODE_ENV: development VITE_API_ENDPOINT: https://jokesbapak2.reinaldyrafli.com/api/v1 - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: javascript - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 api-build: name: API runs-on: ubuntu-latest container: golang:1.19-bullseye timeout-minutes: 15 services: bucket: image: minio/minio:edge-cicd env: MINIO_ROOT_USER: root MINIO_ROOT_PASSWORD: verysecurepassword MINIO_ACCESS_KEY: minio_access_key MINIO_SECRET_KEY: minio_access_key ports: - 9000:9000 options: >- --health-cmd "curl -f http://bucket:9000/minio/health/live" --health-interval 45s --health-timeout 30s --health-retries 10 --health-start-period 120s volumes: - minio-data:/data redis: image: redis:6-bullseye ports: - 6379:6379 defaults: run: working-directory: ./api steps: - name: Checkout code uses: actions/checkout@v2 - name: Installling dependencies run: go mod download - name: Build run: go build main.go - name: Run test & coverage run: go test -v -coverprofile=coverage.out -covermode=atomic ./... env: ENV: development PORT: 5000 MINIO_HOST: bucket:9000 MINIO_ACCESS_ID: root MINIO_SECRET_KEY: verysecurepassword REDIS_URL: redis://@redis:6379 - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: languages: go - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 - uses: codecov/codecov-action@v2 with: flags: api