From 74211aa02e51b7200e9b1d93543697f90d603fc4 Mon Sep 17 00:00:00 2001 From: Bagatur <22008038+baskaryan@users.noreply.github.com> Date: Thu, 14 Dec 2023 12:46:45 -0800 Subject: [PATCH] infra: add integration test workflow (#14688) --- .github/workflows/_integration_test.yml | 57 +++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/_integration_test.yml diff --git a/.github/workflows/_integration_test.yml b/.github/workflows/_integration_test.yml new file mode 100644 index 0000000000..b1eff7b2b6 --- /dev/null +++ b/.github/workflows/_integration_test.yml @@ -0,0 +1,57 @@ +name: Integration tests + +on: + workflow_dispatch: + inputs: + working-directory: + required: true + type: string + +env: + POETRY_VERSION: "1.6.1" + +jobs: + build: + defaults: + run: + working-directory: ${{ inputs.working-directory }} + runs-on: ubuntu-latest + strategy: + matrix: + python-version: + - "3.8" + - "3.11" + name: Python ${{ 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: Install dependencies + shell: bash + run: poetry install --with test,test_integration + + - name: Run integration tests + shell: bash + env: + GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} + 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'