Merge pull request #241 from trheyi/main #553
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Unit-Test | |
on: | |
workflow_dispatch: | |
inputs: | |
tags: | |
description: "Comment" | |
push: | |
branches: [main] | |
env: | |
GOU_TEST_AES_KEY: "^*aNBue!loLTTiP*4i&BSK7s#QRbe0^g" | |
GOU_TEST_REDIS_HOST: "127.0.0.1" | |
GOU_TEST_REDIS_PORT: "6379" | |
GOU_TEST_GITHUB_TOKEN: ${{ secrets.GOU_TEST_GITHUB_TOKEN }} | |
GOU_TEST_GITHUB_REPO: github.com/YaoApp/workshop-tests-private | |
GOU_TEST_DSL_TABLE_NAME: test_env | |
GOU_TEST_APPLICATION: ${{ github.WORKSPACE }}/gou-dev-app | |
GOU_TEST_PLUGIN: ${{ github.WORKSPACE }}/gou-dev-app/plugins/linux | |
SEND_MAIL_WORKER_NUMS: 2 | |
SEND_MAIL_TEST_MAIL: max@iqka.com | |
REPO_KUN: ${{ github.repository_owner }}/kun | |
REPO_XUN: ${{ github.repository_owner }}/xun | |
REPO_APP: YaoApp/gou-dev-app | |
MYSQL_TEST_HOST: "127.0.0.1" | |
MYSQL_TEST_PORT: "3308" | |
MYSQL_TEST_USER: test | |
MYSQL_TEST_PASS: "123456" | |
SQLITE_DB: "./app/db/yao.db" | |
REDIS_TEST_HOST: "127.0.0.1" | |
REDIS_TEST_PORT: "6379" | |
REDIS_TEST_DB: "2" | |
MONGO_TEST_HOST: "127.0.0.1" | |
MONGO_TEST_PORT: "27017" | |
MONGO_TEST_USER: "root" | |
MONGO_TEST_PASS: "123456" | |
OPENAI_TEST_KEY: ${{ secrets.OPENAI_TEST_KEY }} | |
jobs: | |
unit-test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
go: [1.20.0] | |
db: [MySQL8.0, SQLite3] | |
redis: [4, 5, 6] | |
mongo: ["6.0"] | |
steps: | |
- name: Checkout Kun | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.REPO_KUN }} | |
path: kun | |
- name: Checkout Xun | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.REPO_XUN }} | |
path: xun | |
- name: Checkout Application | |
uses: actions/checkout@v4 | |
with: | |
repository: ${{ env.REPO_APP }} | |
path: gou-dev-app | |
- name: Checkout V8Go | |
uses: actions/checkout@v4 | |
with: | |
repository: yaoapp/v8go | |
lfs: true | |
path: v8go | |
- name: Unzip libv8 | |
run: | | |
files=$(find ./v8go -name "libv8*.zip") | |
for file in $files; do | |
dir=$(dirname "$file") # Get the directory where the ZIP file is located | |
echo "Extracting $file to directory $dir" | |
unzip -o -d $dir $file | |
rm -rf $dir/__MACOSX | |
done | |
- name: Checkout Demo WMS | |
uses: actions/checkout@v4 | |
with: | |
repository: yaoapp/demo-wms | |
path: demo-wms | |
- name: Move Kun, Xun, V8go, Application | |
run: | | |
mv kun ../ | |
mv xun ../ | |
mv v8go ../ | |
mv demo-wms ../ | |
mv gou-dev-app ../ | |
ls -l . | |
ls -l ../ | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Move Application | |
run: | | |
mv ../gou-dev-app . | |
ls -l . | |
ls -l ../ | |
- name: Start Redis | |
uses: supercharge/redis-github-action@1.4.0 | |
with: | |
redis-version: ${{ matrix.redis }} | |
- name: Start MongoDB | |
uses: supercharge/mongodb-github-action@1.8.0 | |
with: | |
mongodb-version: ${{ matrix.mongo }} | |
mongodb-username: root | |
mongodb-password: 123456 | |
mongodb-db: test | |
- name: Setup MySQL8.0 (connector) | |
uses: ./.github/actions/setup-db | |
with: | |
kind: "MySQL8.0" | |
db: "test" | |
user: "test" | |
password: "123456" | |
port: "3308" | |
- name: Setup ${{ matrix.db }} | |
uses: ./.github/actions/setup-db | |
with: | |
kind: "${{ matrix.db }}" | |
db: "gou" | |
user: "gou" | |
password: "123456" | |
- name: Setup Go ${{ matrix.go }} | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ matrix.go }} | |
- name: Setup Go Tools | |
run: | | |
make tools | |
- name: Setup ENV | |
run: | | |
echo "GOU_TEST_DSN=$DSN" >> $GITHUB_ENV | |
echo "GOU_TEST_DB_DRIVER=$DB_DRIVER" >> $GITHUB_ENV | |
echo "GOU_TEST_API_ROOT=$GITHUB_WORKSPACE/app/apis" >> $GITHUB_ENV | |
echo "GOU_TEST_FLW_ROOT=$GITHUB_WORKSPACE/app/flows" >> $GITHUB_ENV | |
echo "GOU_TEST_MOD_ROOT=$GITHUB_WORKSPACE/app/models" >> $GITHUB_ENV | |
echo "GOU_TEST_PLG_ROOT=$HOME/data/gou-unit/plugins" >> $GITHUB_ENV | |
echo "GOU_TEST_SCRIPT_ROOT=$GITHUB_WORKSPACE/app/scripts" >> $GITHUB_ENV | |
echo "GOU_TEST_QUERY_ROOT=$GITHUB_WORKSPACE/query/assets" >> $GITHUB_ENV | |
echo "GOU_TEST_PLG_LOG=$HOME/data/gou-unit/logs" >> $GITHUB_ENV | |
echo "GOU_TEST_APP_ROOT=$GITHUB_WORKSPACE/tests/app" >> $GITHUB_ENV | |
echo "YAO_PATH=$GITHUB_WORKSPACE/tests/yao" >> $GITHUB_ENV | |
mkdir -p $HOME/.yao | |
echo ${{ secrets.GOU_TEST_GITHUB_TOKEN }} > $HOME/.yao/github_token | |
chmod 600 $HOME/.yao/github_token | |
ls -l $HOME/.yao/github_token | |
- name: Run Benchmark | |
run: | | |
make bench | |
- name: Run Test | |
run: | | |
make vet | |
make fmt-check | |
make misspell-check | |
make test | |
- name: Codecov Report | |
uses: codecov/codecov-action@v4 | |
# with: | |
# token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos |