diff --git a/.github/workflows/packing.yml b/.github/workflows/packing.yml index a9487750..65a3a9df 100644 --- a/.github/workflows/packing.yml +++ b/.github/workflows/packing.yml @@ -277,3 +277,61 @@ jobs: path: rpm_dist retention-days: 1 if-no-files-found: error + + run_tests_rpm: + needs: pack_rpm + + # We want to run on external PRs, but not on our own internal + # PRs as they'll be run by the push to the branch. + # + # The main trick is described here: + # https://github.com/Dart-Code/Dart-Code/pull/2375 + if: (github.event_name == 'push') || + (github.event_name == 'pull_request' && + github.event.pull_request.head.repo.full_name != github.repository) + runs-on: ubuntu-20.04 + + container: + image: ${{ matrix.target.os }}:${{ matrix.target.dist }} + + strategy: + fail-fast: false + + matrix: + target: + - os: fedora + dist: '34' + - os: fedora + dist: '35' + - os: fedora + dist: '36' + + steps: + - name: Clone the connector repo + uses: actions/checkout@v3 + + - name: Setup Python and test running tools + run: dnf install -y python3 python3-libs python3-pip git make + + - name: Remove connector source code + run: python3 .github/scripts/remove_source_code.py + + - name: Install tarantool + run: | + curl -L https://tarantool.io/yeohchA/release/2/installer.sh | bash + dnf install -y tarantool tarantool-devel + + - name: Download RPM artifacts + uses: actions/download-artifact@v3 + with: + name: rpm_dist_${{ matrix.target.os }}_${{ matrix.target.dist }} + path: rpm_dist + + - name: Install the package from rpm artifacts + run: dnf install -y rpm_dist/python3-tarantool-*.noarch.rpm + + - name: Install test requirements + run: pip3 install -r requirements-test.txt + + - name: Run tests + run: make test-pure-install