name: gin-vue-admin build test

on:
  push:
    branches:
      - "*"
    paths-ignore:
      - "./db/**"
      - "**.md"
  pull_request:
    branches:
      - "*"
    paths-ignore:
      - "./db/**"
      - "**.md"

jobs:
  frontend:
    name: Frontend build
    runs-on: ubuntu-latest
    strategy:
      matrix:
        node-version: [14.16.0]
    steps:
      - name: Check out branch
        uses: actions/checkout@v2

      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v1
        with:
          node-version: ${{ matrix.node-version }}

      - name: Build test
        run: |
          npm install
          npm run build
        working-directory: ./web

  backend:
    name: Backend build
    runs-on: ubuntu-latest
    steps:
      - name: Set up Go 1.6
        uses: actions/setup-go@v1
        with:
          go-version: 1.16
        id: go

      - name: Check out branch
        uses: actions/checkout@v2

      - name: Download dependencies
        run: |
          go get -v -t -d ./...
          if [ -f Gopkg.toml ]; then
              curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
              dep ensure
          fi
        working-directory: ./server

      - name: Test and Build
        run: |
          go build -v -race
        working-directory: ./server
