.github/: Introduce interop tests (#2835)

Adds two workflows on push & PR:

* `run-ping-interop-cross-version`: runs a Testground interoperability test
  between multiple versions of rust-libp2p, including master, and the current
  branch (during a pull request)
* `run-ping-interop-cross-implementation`: runs a Testground interoperability
  test between go-libp2p and rust-libp2p, and the current branch (during a pull
  request)

We rely on the https://github.com/libp2p/test-plans/ repository to retrieve and
run the tests.

Co-authored-by: Piotr Galar <piotr.galar@gmail.com>
This commit is contained in:
Laurent Senta 2022-09-07 06:10:01 +02:00 committed by GitHub
parent b8c3b282ee
commit a40180c3d8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

27
.github/workflows/interop-test.yml vendored Normal file
View File

@ -0,0 +1,27 @@
on:
pull_request:
push:
branches:
- master
name: Interoperability Testing
jobs:
# NOTE: during a pull request run, github creates a merge commit referenced in `github.sha`
# that merge commit is not a regular commit. You won't find it with a regular `git checkout SHA` and
# tools like `go get repo@SHA` won't find it.
#
# As a workaround, we generate a path to the actual pull request's commit, it looks like:
# `github.com/external-org/go-libp2p@latest-commit-on-their-branch`
run-ping-interop-cross-version:
uses: "libp2p/test-plans/.github/workflows/run-composition.yml@master"
with:
composition_file: "ping/_compositions/rust-cross-versions.toml"
custom_git_target: github.com/${{ github.event.pull_request.head.repo.full_name || github.event.repository.full_name }}
custom_git_reference: ${{ github.event.pull_request.head.sha || github.sha }}
run-ping-interop-cross-implementation:
uses: "libp2p/test-plans/.github/workflows/run-composition.yml@master"
with:
composition_file: "ping/_compositions/go-rust-interop-latest.toml"
custom_git_target: github.com/${{ github.event.pull_request.head.repo.full_name || github.event.repository.full_name }}
custom_git_reference: ${{ github.event.pull_request.head.sha || github.sha }}
custom_interop_target: rust