diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml new file mode 100644 index 0000000..b818788 --- /dev/null +++ b/.github/workflows/pr-check.yml @@ -0,0 +1,124 @@ +name: PR-Check + +on: + pull_request: + branches: [ "main" ] + +defaults: + run: + shell: bash + +env: + GO_VERSION: 1.23.4 + PNAME: loadgen + +jobs: + unit_test: + runs-on: ubuntu-latest + steps: + - name: Checkout current repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + path: ${{ env.PNAME }} + + - name: Checkout framework repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + repository: infinilabs/framework + path: framework + + - name: Checkout framework-vendor + uses: actions/checkout@v4 + with: + ref: main + fetch-depth: 0 + repository: infinilabs/framework-vendor + path: vendor + + - name: Set up go toolchain + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GO_VERSION }} + check-latest: false + cache: true + + - name: Check go toolchain + run: go version + + - name: Unit test + env: + GOFLAGS: -tags=ci + run: | + echo Home path is $HOME + export WORKBASE=$HOME/go/src/infini.sh + export WORK=$WORKBASE/$PNAME + + # for test workspace + mkdir -p $HOME/go/src/ + ln -s $GITHUB_WORKSPACE $WORKBASE + + # check work folder + ls -lrt $WORKBASE/ + ls -alrt $WORK + + # for unit test + cd $WORK + echo Testing code at $PWD ... + make test + + code_lint: + runs-on: ubuntu-latest + steps: + - name: Checkout current repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + path: ${{ env.PNAME }} + + - name: Checkout framework repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + repository: infinilabs/framework + path: framework + + - name: Checkout framework-vendor + uses: actions/checkout@v4 + with: + ref: main + fetch-depth: 0 + repository: infinilabs/framework-vendor + path: vendor + + - name: Set up go toolchain + uses: actions/setup-go@v5 + with: + go-version: ${{ env.GO_VERSION }} + check-latest: false + cache: true + + - name: Check go toolchain + run: go version + + - name: Code lint + env: + GOFLAGS: -tags=ci + run: | + echo Home path is $HOME + export WORKBASE=$HOME/go/src/infini.sh + export WORK=$WORKBASE/$PNAME + + # for test workspace + mkdir -p $HOME/go/src/ + ln -s $GITHUB_WORKSPACE $WORKBASE + + # check work folder + ls -lrt $WORKBASE/ + ls -alrt $WORK + + # for unit test + cd $WORK + echo Linting code at $PWD ... + make lint \ No newline at end of file