Merge pull request #828 from mendix/dependabot/pip/develop/pytest-8.3.4 #2447
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: 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 |