|
- #
- # Licensed to the Apache Software Foundation (ASF) under one or more
- # contributor license agreements. See the NOTICE file distributed with
- # this work for additional information regarding copyright ownership.
- # The ASF licenses this file to You under the Apache License, Version 2.0
- # (the "License"); you may not use this file except in compliance with
- # the License. You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- #
-
- name: "Unit Test"
-
- on:
- push:
- branches: [ master ]
- pull_request:
- branches: [ "*" ]
- types: [opened, synchronize, reopened]
-
- permissions:
- contents: read
-
- jobs:
- unit-test:
- name: Unit Test
- runs-on: ubuntu-latest
- timeout-minutes: 10
- strategy:
- matrix:
- golang:
- - 1.18
-
- steps:
- - name: "Set up Go"
- uses: actions/setup-go@v3
- with:
- go-version: ${{ matrix.golang }}
-
- - name: "Checkout code"
- uses: actions/checkout@v3
- with:
- submodules: true
-
- - name: "Cache dependencies"
- uses: actions/cache@v3
- with:
- path: ~/go/pkg/mod
- key: "${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}"
- restore-keys: |
- "${{ runner.os }}-go-"
-
- - name: Shutdown default mysql
- run: sudo service mysql stop
-
-
- - name: "Run Unit Tests"
- run: |
- echo "=== Starting Unit Tests ==="
- go test -v ./... -race -coverprofile=coverage.txt -covermode=atomic -timeout 10m
- if [ $? -ne 0 ]; then
- echo "❌ Unit tests failed"
- exit 1
- fi
- echo "✅ Unit tests completed successfully"
-
- - name: "Archive test results"
- uses: actions/upload-artifact@v3
- with:
- name: test-results
- path: coverage.txt
- retention-days: 7
|