Fix for behat tests #323
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
push: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash | |
env: | |
PN_KEY_PUBLISH: ${{ secrets.SDK_PUB_KEY }} | |
PN_KEY_SUBSCRIBE: ${{ secrets.SDK_SUB_KEY }} | |
PN_KEY_SECRET: ${{ secrets.SDK_SEC_KEY }} | |
PN_KEY_PAM_PUBLISH: ${{ secrets.SDK_PAM_PUB_KEY }} | |
PN_KEY_PAM_SUBSCRIBE: ${{ secrets.SDK_PAM_SUB_KEY }} | |
PN_KEY_PAM_SECRET: ${{ secrets.SDK_PAM_SEC_KEY }} | |
jobs: | |
tests: | |
name: Integration and Unit tests | |
runs-on: | |
group: organization/Default | |
strategy: | |
max-parallel: 1 | |
fail-fast: true | |
matrix: | |
python: [3.8.18, 3.9.18, 3.10.13, 3.11.6] | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
token: ${{ secrets.GH_TOKEN }} | |
- name: Checkout actions | |
uses: actions/checkout@v4 | |
with: | |
repository: pubnub/client-engineering-deployment-tools | |
ref: v1 | |
token: ${{ secrets.GH_TOKEN }} | |
path: .github/.release/actions | |
- name: Setup Python ${{ matrix.python }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python }} | |
- name: Build and run tests for Python ${{ matrix.python }} | |
run: | | |
./scripts/install.sh | |
python scripts/run-tests.py | |
- name: Cancel workflow runs for commit on error | |
if: failure() | |
uses: ./.github/.release/actions/actions/utils/fast-jobs-failure | |
acceptance-tests: | |
name: Acceptance tests | |
runs-on: | |
group: organization/Default | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout project | |
uses: actions/checkout@v4 | |
- name: Checkout mock-server action | |
uses: actions/checkout@v4 | |
with: | |
repository: pubnub/client-engineering-deployment-tools | |
ref: v1 | |
token: ${{ secrets.GH_TOKEN }} | |
path: .github/.release/actions | |
- name: Setup Python 3.9 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.9.13" | |
- name: Run mock server action | |
uses: ./.github/.release/actions/actions/mock-server | |
with: | |
token: ${{ secrets.GH_TOKEN }} | |
- name: Install Python dependencies and run acceptance tests | |
run: | | |
cp sdk-specifications/features/access/authorization-failure-reporting.feature tests/acceptance/pam | |
cp sdk-specifications/features/access/grant-token.feature tests/acceptance/pam | |
cp sdk-specifications/features/access/revoke-token.feature tests/acceptance/pam | |
cp sdk-specifications/features/encryption/cryptor-module.feature tests/acceptance/encryption | |
mkdir tests/acceptance/encryption/assets/ | |
cp sdk-specifications/features/encryption/assets/* tests/acceptance/encryption/assets/ | |
cp sdk-specifications/features/subscribe/event-engine/happy-path_Legacy.feature tests/acceptance/subscribe/happy-path_Legacy.feature | |
cp sdk-specifications/features/presence/event-engine/presence-engine_Legacy.feature tests/acceptance/subscribe/presence-engine_Legacy.feature | |
sudo pip3 install -r requirements-dev.txt | |
behave --junit tests/acceptance/pam | |
behave --junit tests/acceptance/encryption/cryptor-module.feature -t=~na=python -k | |
behave --junit tests/acceptance/subscribe | |
- name: Expose acceptance tests reports | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: acceptance-test-reports | |
path: ./reports | |
retention-days: 7 | |
- name: Cancel workflow runs for commit on error | |
if: failure() | |
uses: ./.github/.release/actions/actions/utils/fast-jobs-failure | |
all-tests: | |
name: Tests | |
needs: [tests, acceptance-tests] | |
runs-on: | |
group: organization/Default | |
steps: | |
- name: Tests summary | |
run: echo -e "\033[38;2;95;215;0m\033[1mAll tests successfully passed" |