name: "libp2p ping interop test" description: "Run the libp2p ping interoperability test suite" inputs: test-filter: description: "Filter which tests to run out of the created matrix" required: false default: "" extra-versions: description: "Space-separated paths to JSON files describing additional images" required: false default: "" runs: using: "composite" steps: # This depends on where this file is within this repository. This walks up # from here to the multidim-interop folder - run: | WORK_DIR=$(realpath "${{ github.action_path }}/../../../multidim-interop") echo "WORK_DIR=$WORK_DIR" >> $GITHUB_OUTPUT shell: bash id: find-workdir - uses: actions/setup-node@v3 with: node-version: 18 - name: Expose GitHub Runtime # Needed for docker buildx to cache properly (See https://docs.docker.com/build/cache/backends/gha/#authentication) uses: crazy-max/ghaction-github-runtime@v2 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Install deps working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: npm ci shell: bash - name: Build images working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: make shell: bash - name: Run the test working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: WORKER_COUNT=2 npm run test -- --extra-version=${{ inputs.extra-versions }} --name-filter=${{ inputs.test-filter }} shell: bash - name: Print the results working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: cat results.csv shell: bash - name: Render results working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: npm run renderResults > ./dashboard.md shell: bash - name: Show Dashboard Output working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: cat ./dashboard.md >> $GITHUB_STEP_SUMMARY shell: bash - name: Exit with Error working-directory: ${{ steps.find-workdir.outputs.WORK_DIR }} run: | if grep -q ":red_circle:" ./dashboard.md; then exit 1 else exit 0 fi shell: bash - uses: actions/upload-artifact@v3 with: name: test-plans-output path: | ${{ steps.find-workdir.outputs.WORK_DIR }}/results.csv ${{ steps.find-workdir.outputs.WORK_DIR }}/dashboard.md