Skip to content

Update transport implementations#833

Merged
MarcoPolo merged 6 commits intomasterfrom
update-transport-impls
Feb 23, 2026
Merged

Update transport implementations#833
MarcoPolo merged 6 commits intomasterfrom
update-transport-impls

Conversation

@MarcoPolo
Copy link
Contributor

No framework changes. Just updating the transports and attempting to have CI run on self hosted runners.

MarcoPolo and others added 5 commits February 20, 2026 10:06
* chore: bump nim-libp2p

* enabling nim tests

Signed-off-by: Dave Grantham <dwg@linuxprogrammer.org>

* cleaup of the setup

Signed-off-by: Dave Grantham <dwg@linuxprogrammer.org>

---------

Signed-off-by: Dave Grantham <dwg@linuxprogrammer.org>
Co-authored-by: Richard Ramos <info@richardramos.me>
Co-authored-by: Dave Grantham <dwg@linuxprogrammer.org>
No test framework changes, only updating test applications
@MarcoPolo
Copy link
Contributor Author

@dhuseby Are the self hosted runners expected to run?

@dhuseby
Copy link
Contributor

dhuseby commented Feb 20, 2026

I think the smart thing to do here is to set up Github runners.

@MarcoPolo
Copy link
Contributor Author

I don't follow. Are you saying that the self hosted runners you previously setup for this repo are no longer available, and that I should use GitHub hosted runners instead?

@MarcoPolo MarcoPolo mentioned this pull request Feb 20, 2026
@dhuseby
Copy link
Contributor

dhuseby commented Feb 20, 2026

I can set up one of the self-hosted runners for this repo to use. Let me do that, you'll need it. The GH hosted runners won't run long enough to do a full transport interop pass with this framework.

@dhuseby
Copy link
Contributor

dhuseby commented Feb 20, 2026

It's going to fail because it is running a custom Debian OS set up for the other testing framework. As you debug it, let me know what you need installed in the system image to make it work and I'll get them installed.

@dhuseby
Copy link
Contributor

dhuseby commented Feb 20, 2026

It is being picked up by the self-hosted runner but it is hanging I think.

@dhuseby
Copy link
Contributor

dhuseby commented Feb 22, 2026

Ok, the self-hosted runner is set up for your exclusive use. I manually ran the job several times to ensure that it is being picked up and run correctly. Everything is working. Let me know if you have any issues. The job is failing, but it is running correctly.

@MarcoPolo MarcoPolo force-pushed the update-transport-impls branch 2 times, most recently from d6cac30 to 9f15512 Compare February 23, 2026 18:54
These may be removed by a future change
@MarcoPolo MarcoPolo force-pushed the update-transport-impls branch from 9f15512 to 0066341 Compare February 23, 2026 19:05
@MarcoPolo
Copy link
Contributor Author

Interop tests ran fine: https://github.com/libp2p/test-plans/actions/runs/22320731122?pr=833

CI returns failure because some interop test cases failed. Worth debugging why those fail, but for the purpose of this PR, getting CI running again, we can ignore those.

@MarcoPolo
Copy link
Contributor Author

This PR doesn't change anything about the test framework itself (except an explicit string casting in yaml), so I'll go ahead and merge this so future PRs can use CI properly.

@MarcoPolo MarcoPolo merged commit 5d54c07 into master Feb 23, 2026
1 check failed
@MarcoPolo MarcoPolo deleted the update-transport-impls branch February 23, 2026 21:45
Copy link
Contributor

@dhuseby dhuseby left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed you're manually installing dependencies. If you'd like me to upstream these into the self-hosted runner, let me know. I'm happy to apply a patch, rebuild and restart the runner. Here's the current Dockerfile for the ephemeral self-hosted runner:

# ─────────────────────────────────────────────────────────────
# Minimal Debian 13 (trixie) + GitHub Actions runner + full BuildKit
# ─────────────────────────────────────────────────────────────
FROM debian:13-slim

# Prevent interactive prompts
ENV DEBIAN_FRONTEND=noninteractive \
    RUNNER_ALLOW_RUNASROOT=1

# Install only what is strictly required
# - GitHub runner dependencies (very small list)
# - Docker CLI + Buildx plugin (from official Docker repos)
# - BuildKit enabled by default for plain `docker build`
RUN apt-get update && \
    apt-get install -y --no-install-recommends \
        ca-certificates \
        curl \
        gnupg && \
    \
    # Add Docker's official GPG key and repository
    install -m 0755 -d /etc/apt/keyrings && \
    curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg && \
    chmod a+r /etc/apt/keyrings/docker.gpg && \
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian trixie stable" > /etc/apt/sources.list.d/docker.list && \
    curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | gpg --dearmor -o /etc/apt/keyrings/githubcli-archive-keyring.gpg && \
    echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list && \
    \
    # Refresh with Docker repo and install everything
    apt-get update && \
    apt-get install -y --no-install-recommends \
        bc \
        ca-certificates \
        containerd.io \
        coreutils \
        docker-ce \
        docker-ce-cli \
        docker-buildx-plugin \
        docker-compose-plugin \
        gh \
        git \
        gnuplot \
        gzip \
        jq \
        libssl3 \
        liblttng-ust1 \
        libkrb5-3 \
        libicu76 \
        libunwind8 \
        libuuid1 \
        openssh-client \
        pandoc \
        patch \
        tar \
        wget \
        unzip \
        util-linux \
        zip && \
    rm -rf /var/lib/apt/lists/*

# Set up SSH
#RUN mkdir -p /root/.ssh && \
#    chmod 700 /root/.ssh

# Force BuildKit for ALL `docker build` commands (no DOCKER_BUILDKIT=1 needed)
RUN mkdir -p /root/.docker && \
    echo '{ "features": { "buildkit": "true" } }' > /root/.docker/config.json

# Install latest stable yq (mikefarah) — tiny binary, no deps
ENV YQ_VERSION=v4.49.2
RUN arch=$(dpkg --print-architecture) && \
    curl -L --fail -o /usr/local/bin/yq \
        "https://github.com/mikefarah/yq/releases/download/${YQ_VERSION}/yq_linux_${arch}" && \
    chmod +x /usr/local/bin/yq

# Install GitHub Actions runner (latest stable at time of writing)
ARG RUNNER_VERSION=2.330.0
WORKDIR /actions-runner

RUN curl -L -o runner.tar.gz \
        "https://github.com/actions/runner/releases/download/v${RUNNER_VERSION}/actions-runner-linux-x64-${RUNNER_VERSION}.tar.gz" && \
    tar xzf runner.tar.gz && \
    rm runner.tar.gz && \
    ./bin/installdependencies.sh && \
    # Clean up runner's own apt caches
    rm -rf /var/lib/apt/lists/*

# Copy your entrypoint script (ephemeral registration)
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants