diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index c89825f0..2f195b3a 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -7,14 +7,76 @@ on: workflows: ["Receive PR"] types: - completed +env: + YAO_DEV: ${{ github.WORKSPACE }} + YAO_ENV: development + YAO_ROOT: ${{ github.WORKSPACE }}/tests + YAO_HOST: 0.0.0.0 + YAO_PORT: 5099 + YAO_SESSION: "memory" + YAO_LOG: "./logs/application.log" + YAO_LOG_MODE: "TEXT" + YAO_JWT_SECRET: "bLp@bi!oqo-2U+hoTRUG" + YAO_DB_AESKEY: "ZLX=T&f6refeCh-ro*r@" + OSS_TEST_ID: ${{ secrets.OSS_TEST_ID}} + OSS_TEST_SECRET: ${{ secrets.OSS_TEST_SECRET}} + ROOT_PLUGIN: ${{ github.WORKSPACE }}/../../../data/gou-unit/plugins jobs: - upload: + UnitTest: runs-on: ubuntu-latest + strategy: + matrix: + go: [1.17] + db: [SQLite3] if: > ${{ github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' }} steps: + - name: Setup Cache + uses: actions/cache@v2 + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - name: Checkout Kun + uses: actions/checkout@v2 + with: + repository: yaoapp/kun + path: kun + + - name: Checkout Xun + uses: actions/checkout@v2 + with: + repository: yaoapp/xun + path: xun + + - name: Checkout Gou + uses: actions/checkout@v2 + with: + repository: yaoapp/gou + path: gou + + - name: Checkout V8Go + uses: actions/checkout@v2 + with: + repository: rogchap/v8go + ref: 5e91d3d9dcabd2986f901b6b31590e49fc3c4dd8 + path: v8go + + - name: Move Kun, Xun, Gou, V8Go + run: | + mv kun ../ + mv xun ../ + mv gou ../ + mv v8go ../ + ls -l . + ls -l ../ + - name: "Download artifact" uses: actions/github-script@v3.1.0 with: @@ -35,25 +97,86 @@ jobs: }); var fs = require('fs'); fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data)); + - name: "Unzip" run: | unzip pr.zip cat NR cat SHA echo HEAD=$(cat SHA) >> $GITHUB_ENV + echo NR=$(cat NR) >> $GITHUB_ENV - name: Checkout pull request HEAD commit uses: actions/checkout@v2 with: ref: ${{ env.HEAD }} + - name: Setup ${{ matrix.db }} + uses: ./.github/actions/setup-db + with: + kind: "${{ matrix.db }}" + db: "xiang" + user: "xiang" + password: ${{ secrets.UNIT_PASS }} + + - name: Setup Go ${{ matrix.go }} + uses: actions/setup-go@v2 + with: + go-version: ${{ matrix.go }} + + - name: Setup Go Tools + run: | + if [[ "${GO111MODULE}" = "on" ]]; then go mod download; fi + if [[ "${GO111MODULE}" = "on" ]]; then export PATH="${GOPATH}/bin:${GOROOT}/bin:${PATH}"; fi + if [[ "${GO111MODULE}" = "on" ]]; then make tools; fi + + - name: Setup ENV & Host + env: + PASSWORD: ${{ secrets.UNIT_PASS }} + run: | + sudo echo "127.0.0.1 local.iqka.com" | sudo tee -a /etc/hosts + echo "YAO_DB_DRIVER=$DB_DRIVER" >> $GITHUB_ENV + echo "GITHUB_WORKSPACE:\n" && ls -l $GITHUB_WORKSPACE + + if [ "$DB_DRIVER" = "mysql" ]; then + echo "YAO_DB_PRIMARY=$DB_USER:$PASSWORD@$DB_HOST" >> $GITHUB_ENV + elif [ "$DB_DRIVER" = "postgres" ]; then + echo "YAO_DB_PRIMARY=postgres://$DB_USER:$PASSWORD@$DB_HOST" >> $GITHUB_ENV + else + echo "YAO_DB_PRIMARY=$YAO_ROOT/$DB_HOST" >> $GITHUB_ENV + fi + + echo ".:\n" && ls -l . + echo "..:\n" && ls -l .. + ping -c 1 -t 1 local.iqka.com + + - name: Test Prepare + run: | + make vet + make fmt-check + make misspell-check + make plugin + mkdir -p $YAO_ROOT/plugins/ + mv $ROOT_PLUGIN/user.so $YAO_ROOT/plugins/ + ls -l $YAO_ROOT/plugins/ + make migrate + + - name: Run test + run: | + make test + + - name: Codecov Report + uses: codecov/codecov-action@v2 + with: + token: ${{ secrets.CODECOV_TOKEN }} # not required for public repos + - name: "Comment on PR" uses: actions/github-script@v3 with: github-token: ${{ secrets.GITHUB_TOKEN }} script: | var fs = require('fs'); - var issue_number = Number(fs.readFileSync('./NR')); + var issue_number = ${NR}; await github.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml index e7987d1c..6ef61264 100644 --- a/.github/workflows/unit-test.yml +++ b/.github/workflows/unit-test.yml @@ -80,7 +80,7 @@ jobs: kind: "${{ matrix.db }}" db: "xiang" user: "xiang" - password: 123456 + password: ${{ secrets.UNIT_PASS }} - name: Setup Go ${{ matrix.go }} uses: actions/setup-go@v2 @@ -95,7 +95,7 @@ jobs: - name: Setup ENV & Host env: - PASSWORD: 123456 + PASSWORD: ${{ secrets.UNIT_PASS }} run: | sudo echo "127.0.0.1 local.iqka.com" | sudo tee -a /etc/hosts echo "YAO_DB_DRIVER=$DB_DRIVER" >> $GITHUB_ENV