Skip to content

the ability to automatically run unit tests after creating a pull request. #136

the ability to automatically run unit tests after creating a pull request.

the ability to automatically run unit tests after creating a pull request. #136

Workflow file for this run

#
# 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