diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..452ea4ee --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,64 @@ +name: PAI-RAG CI Build + +on: + push: + # Sequence of patterns matched against refs/heads + branches: + - main + - feature + - "releases/**" + +permissions: + contents: read + pull-requests: write + +jobs: + build: + name: Build and Test + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + # This is the version of the action for setting up Python, not the Python version. + uses: actions/setup-python@v5 + with: + # Semantic version range syntax or exact version of a Python version + python-version: "3.10" + # Optional - x64 or x86 architecture, defaults to x64 + architecture: "x64" + + - name: Install Dependencies + run: | + python -m pip install --upgrade pip setuptools wheel + pip install poetry + poetry install + env: + POETRY_VIRTUALENVS_CREATE: false + + - name: Install pre-commit + shell: bash + run: poetry run pip install pre-commit + + - name: Run Linter + shell: bash + run: poetry run make lint + + - name: Run Tests + run: | + make coveragetest + env: + DASHSCOPE_API_KEY: ${{ secrets.TESTDASHSCOPEKEY }} + IS_PAI_RAG_CI_TEST: true + PAIRAG_RAG__embedding__source: "DashScope" + PAIRAG_RAG__llm__source: "DashScope" + PAIRAG_RAG__llm__name: "qwen-turbo" + + - name: Get Cover + uses: orgoro/coverage@v3.1 + with: + coverageFile: localdata/test_output/coverage_report.xml + token: ${{ secrets.GITHUB_TOKEN }} + thresholdAll: 0.5 # Total coverage threshold + #thresholdNew: 0.9 # New files coverage threshold + #thresholdModified: 0.9 # Modified files coverage threshold