From e93da4f6ceda65ccce34854f140d9687e42a865d Mon Sep 17 00:00:00 2001 From: glide-the <2533736852@qq.com> Date: Tue, 16 Jul 2024 19:50:06 +0800 Subject: [PATCH] CICD --- .github/workflows/_integration_test.yml | 67 +++++++++++++++++++++++++ .github/workflows/_test.yml | 61 ++++++++++++++++++++++ 2 files changed, 128 insertions(+) create mode 100644 .github/workflows/_integration_test.yml create mode 100644 .github/workflows/_test.yml diff --git a/.github/workflows/_integration_test.yml b/.github/workflows/_integration_test.yml new file mode 100644 index 0000000..4f9104b --- /dev/null +++ b/.github/workflows/_integration_test.yml @@ -0,0 +1,67 @@ +name: integration_test + +on: + workflow_dispatch: + inputs: + working-directory: + required: true + type: string + default: '.' + description: "From which folder this pipeline executes" + +env: + POETRY_VERSION: "1.7.1" + +jobs: + build: + if: github.ref == 'refs/heads/main' + runs-on: ubuntu-latest + + environment: Scheduled testing publish + outputs: + pkg-name: ${{ steps.check-version.outputs.pkg-name }} + version: ${{ steps.check-version.outputs.version }} + strategy: + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + name: "make integration_test #${{ matrix.python-version }}" + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + Poetry ${{ env.POETRY_VERSION }} + uses: "./.github/actions/poetry_setup" + with: + python-version: ${{ matrix.python-version }} + poetry-version: ${{ env.POETRY_VERSION }} + working-directory: ${{ inputs.working-directory }} + cache-key: core + + + - name: Import test dependencies + run: poetry install --with test + working-directory: ${{ inputs.working-directory }} + + - name: Run integration tests + shell: bash + env: + ZHIPUAI_API_KEY: ${{ secrets.ZHIPUAI_API_KEY }} + ZHIPUAI_BASE_URL: ${{ secrets.ZHIPUAI_BASE_URL }} + run: | + make integration_tests + + - name: Ensure the tests did not create any additional files + shell: bash + run: | + set -eu + + STATUS="$(git status)" + echo "$STATUS" + + # grep will exit non-zero if the target message isn't found, + # and `set -e` above will cause the step to fail. + echo "$STATUS" | grep 'nothing to commit, working tree clean' \ No newline at end of file diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml new file mode 100644 index 0000000..7e08f34 --- /dev/null +++ b/.github/workflows/_test.yml @@ -0,0 +1,61 @@ +name: test + +on: + workflow_dispatch: + inputs: + working-directory: + required: true + type: string + default: '.' + description: "From which folder this pipeline executes" + +env: + POETRY_VERSION: "1.7.1" + +jobs: + build: + defaults: + run: + working-directory: ${{ inputs.working-directory }} + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.8" + - "3.9" + - "3.10" + - "3.11" + - "3.12" + name: "make test #${{ matrix.python-version }}" + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + Poetry ${{ env.POETRY_VERSION }} + uses: "./.github/actions/poetry_setup" + with: + python-version: ${{ matrix.python-version }} + poetry-version: ${{ env.POETRY_VERSION }} + working-directory: ${{ inputs.working-directory }} + cache-key: core + + + - name: Import test dependencies + run: poetry install --with test + working-directory: ${{ inputs.working-directory }} + + - name: Run core tests + shell: bash + run: | + make test + + - name: Ensure the tests did not create any additional files + shell: bash + run: | + set -eu + + STATUS="$(git status)" + echo "$STATUS" + + # grep will exit non-zero if the target message isn't found, + # and `set -e` above will cause the step to fail. + echo "$STATUS" | grep 'nothing to commit, working tree clean' \ No newline at end of file