Skip to content

Merge pull request #828 from mendix/dependabot/pip/develop/pytest-8.3.4 #2447

Merge pull request #828 from mendix/dependabot/pip/develop/pytest-8.3.4

Merge pull request #828 from mendix/dependabot/pip/develop/pytest-8.3.4 #2447

Workflow file for this run

name: Run Integration Tests
on:
push:
branches:
- develop
pull_request:
branches:
- develop
- master
- 'releases/**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
pre:
name: Prepare workflow run
runs-on: ubuntu-latest
outputs:
skip: ${{ steps.skip-check.outputs.should_skip }}
steps:
- name: Check if workflow should be skipped
id: skip-check
uses: fkirc/skip-duplicate-actions@v5
with:
github_token: ${{ github.token }}
paths_ignore: '["**.md", "dev/**", "LICENSE"]'
build:
name: Build
needs: pre
uses: ./.github/workflows/build.yml
if: ${{ needs.pre.outputs.skip != 'true' }}
setup-integration-tests:
name: Set up integration tests
runs-on: ubuntu-latest
needs: pre
if: ${{ needs.pre.outputs.skip != 'true' }}
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- uses: actions/checkout@v4
- id: set-matrix
name: Set up test matrix
run: |
FILES=$(cd tests/integration && ls -m test*.py | tr -d \ \\n)
TEST=$(jq -n -c --arg inarr "$FILES" '{ test: $inarr | split(",") }')
echo "::set-output name=matrix::${TEST}"
integration-test:
needs: [build, setup-integration-tests]
name: Run integration tests
runs-on: ubuntu-22.04
timeout-minutes: 30
strategy:
matrix: ${{fromJson(needs.setup-integration-tests.outputs.matrix)}}
env:
TEST_DISK: 1G
TEST_MEMORY: 1G
TEST_PROCESSES: 1
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.10.14
cache: pip
- name: Install Python requirements
run: make install_requirements
- name: Install Cloud Foundry development tools
run: |
wget --no-check-certificate -v -O gpg.key https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key
sudo apt-key add gpg.key
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
sudo apt-get update && sudo apt-get install -y cf-cli
sudo curl -s https://download.mendix.com/Mendix-CA-G2.crt -o /usr/local/share/ca-certificates/ca.crt && sudo update-ca-certificates
cf install-plugin https://cdn.mendix.com/mx-buildpack/cflocal/cflocal-0.20.0-rc1-linux -f
- name: Export hostname for use in tests
run: |
TEST_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+')
echo "TEST_HOST=${TEST_HOST}" >> $GITHUB_ENV
- name: Run test (${{ matrix.test }})
run: make test_integration TEST_FILES=tests/integration/${{ matrix.test }}
integration-test-result:
if: ${{ needs.pre.outputs.skip != 'true' }}
runs-on: ubuntu-latest
name: Get integration test results
needs: [pre, integration-test]
steps:
- name: Get integration test results
if: ${{ needs.integration-test.result != 'success' }}
run: exit 1