ozanh/ugodev

View on GitHub
.github/workflows/ugodev-test.yml

Summary

Maintainability
Test Coverage
name: ugodev-test

on:
  push:
    branches:
      - main
      - development
  pull_request:
    branches: 
      - main
      - development

env:
  GO_VERSION: '1.20.3'

jobs:
  govulncheck:
    runs-on: ubuntu-latest
    name: Security - govulncheck
    steps:
    - name: Checkout
      uses: actions/checkout@v3

    - name: Setup Go
      uses: actions/setup-go@v3
      with:
        go-version: ${{ env.GO_VERSION }}

    - name: Install govulncheck
      run: go install golang.org/x/vuln/cmd/govulncheck@latest
    
    - name: Run govulncheck
      run: govulncheck -v ./...

  build:
    needs: govulncheck
    runs-on: ubuntu-latest
    defaults:
      run:
        shell: bash

    steps:
    - name: Setup Node.js
      uses: actions/setup-node@v3
      with:
        node-version: 14

    - name: Setup Go
      uses: actions/setup-go@v3
      with:
        go-version: ${{ env.GO_VERSION }}

    - name: Check out
      uses: actions/checkout@v3
    
    - name: Install Staticcheck
      run: go install honnef.co/go/tools/cmd/staticcheck@2023.1.2
    
    - name: Run Linter
      run: staticcheck ./...
    
    - name: Test patcher
      working-directory: ./patcher
      run: go test -race -cover ./...
    
    - name: Build Playground
      working-directory: ./playground
      run: |
        set -e
        npm install --global yarn
        yarn install
        make production
        yarn run lint
        yarn run build
      env:
        CI: true
    
    - name: Upload Artifact
      uses: actions/upload-artifact@v3
      with:
        name: playground
        path: ./playground/dist
        if-no-files-found: error
    
    - name: Test Playground
      working-directory: ./playground
      run: |
        set -e
        make test
        yarn run test
      env:
        CI: true