Test Run Dev Version Nightly #788
This file contains hidden or 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: Test Run Dev Version Nightly | |
| on: | |
| schedule: # UTC at 0300 | |
| - cron: "0 3 * * *" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| packages: read | |
| pull-requests: read | |
| issues: read | |
| env: | |
| ANSYSLMD_LICENSE_FILE: ${{ format('1055@{0}', secrets.LICENSE_SERVER) }} | |
| PYFLUENT_TIMEOUT_FORCE_EXIT: 30 | |
| PYTEST_XDIST_AUTO_NUM_WORKERS: 1 | |
| PYFLUENT_LAUNCH_CONTAINER: 1 | |
| PYFLUENT_LOGGING: "DEBUG" | |
| PYFLUENT_WATCHDOG_DEBUG: "OFF" | |
| PYFLUENT_HIDE_LOG_SECRETS: 1 | |
| PYTHON_VERSION: "3.10" | |
| FLUENT_IMAGE_TAG: v26.1.latest | |
| FLUENT_VERSION: 261 | |
| jobs: | |
| test: | |
| name: Unit Testing | |
| runs-on: [self-hosted, pyfluent] | |
| steps: | |
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Python | |
| uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0 | |
| with: | |
| python-version: ${{ env.PYTHON_VERSION }} | |
| - name: Cache pip | |
| uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 | |
| with: | |
| path: ~/.cache/pip | |
| key: Python-${{ runner.os }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('pyproject.toml') }} | |
| restore-keys: | | |
| Python-${{ runner.os }}-${{ env.PYTHON_VERSION }} | |
| - name: Add version information | |
| run: make version-info | |
| - name: Install pyfluent | |
| run: make install | |
| - name: Retrieve PyFluent version | |
| run: | | |
| echo "PYFLUENT_VERSION=$(python -c "from ansys.fluent.core import __version__; print(); print(__version__)" | tail -1)" >> $GITHUB_OUTPUT | |
| echo "PYFLUENT version is: $(python -c "from ansys.fluent.core import __version__; print(); print(__version__)" | tail -1)" | |
| id: version | |
| - name: Login to GitHub Container Registry | |
| uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0 | |
| with: | |
| registry: ghcr.io | |
| username: ansys-bot | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Pull Fluent docker image | |
| run: make docker-pull | |
| env: | |
| FLUENT_IMAGE_TAG: ${{ env.FLUENT_IMAGE_TAG }} | |
| - name: Run API codegen | |
| run: make api-codegen | |
| env: | |
| FLUENT_IMAGE_TAG: ${{ env.FLUENT_IMAGE_TAG }} | |
| - name: Print Fluent version info | |
| env: | |
| VERSION: ${{ env.FLUENT_VERSION }} | |
| run: | | |
| cat src/ansys/fluent/core/generated/fluent_version_${VERSION}.py | |
| python -c "from ansys.fluent.core.generated.solver.settings_${VERSION} import SHASH; print(f'SETTINGS_HASH = {SHASH}')" | |
| - name: Install again after codegen | |
| run: | | |
| rm -rf dist | |
| make install > /dev/null | |
| - name: Unit Testing | |
| id: unittest | |
| run: | | |
| make install-test | |
| make unittest-all-${VERSION} | |
| env: | |
| VERSION: ${{ env.FLUENT_VERSION }} | |
| FLUENT_IMAGE_TAG: ${{ env.FLUENT_IMAGE_TAG }} | |
| continue-on-error: true | |
| - name: Cleanup previous docker containers | |
| if: always() | |
| run: make cleanup-previous-docker-containers | |
| - name: Update Fluent image | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.ADMIN_ACCESS_TOKEN }} | |
| IMAGE_TAG: ${{ env.FLUENT_IMAGE_TAG }} | |
| if: github.ref == 'refs/heads/main' && steps.unittest.outcome == 'success' | |
| run: | | |
| DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ghcr.io/ansys/fluent:${IMAGE_TAG} | sed 's/.*@//') | |
| gh variable set FLUENT_STABLE_IMAGE_DEV --body $DIGEST | |
| - name: Remove all docker images | |
| if: always() | |
| run: make docker-clean-images | |
| - name: Send GitHub Actions Run Status Adaptive Card to Teams via Power Automate | |
| if: github.event_name == 'schedule' && steps.fluent_test.outcome != 'success' | |
| run: | # zizmor: ignore[template-injection] | |
| STATUS="Failure" | |
| RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
| COMMIT_URL="https://github.com/${{ github.repository }}/commit/${{ github.sha }}" | |
| JSON_PAYLOAD=$(jq -n \ | |
| --arg status "$STATUS" \ | |
| --arg branch "${{ github.ref_name }}" \ | |
| --arg commit "${{ github.sha }}" \ | |
| --arg commit_url "$COMMIT_URL" \ | |
| --arg run_url "$RUN_URL" \ | |
| '{ | |
| "attachments": [ | |
| { | |
| "contentType": "application/vnd.microsoft.card.adaptive", | |
| "content": { | |
| "type": "AdaptiveCard", | |
| "version": "1.2", | |
| "body": [ | |
| { | |
| "type": "TextBlock", | |
| "weight": "Bolder", | |
| "size": "Medium", | |
| "text": "${{ github.workflow }}" | |
| }, | |
| { | |
| "type": "TextBlock", | |
| "text": "Status: \($status)" | |
| }, | |
| { | |
| "type": "TextBlock", | |
| "text": "Branch: \($branch)" | |
| }, | |
| { | |
| "type": "TextBlock", | |
| "text": "Commit: \($commit)" | |
| }, | |
| { | |
| "type": "TextBlock", | |
| "text": "[View Commit](\($commit_url))" | |
| }, | |
| { | |
| "type": "TextBlock", | |
| "text": "[View Run](\($run_url))" | |
| } | |
| ] | |
| } | |
| } | |
| ] | |
| }' | |
| ) | |
| echo "Sending notification to Power Automate..." | |
| curl -X POST -H "Content-Type: application/json" -d "$JSON_PAYLOAD" "${{ secrets.PYFLUENT_WEBHOOK_URL }}" | |
| - name: Check test run status and fail the whole job if tests failed | |
| if: steps.unittest.outcome != 'success' | |
| run: | | |
| echo "One or more tests failed. Failing the job." | |
| exit 1 | |