Add CI
This commit is contained in:
parent
311e8d4f59
commit
446cf46b7d
|
@ -0,0 +1,45 @@
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
testground_endpoint:
|
||||||
|
type: string
|
||||||
|
required: false
|
||||||
|
description: testground endpoint
|
||||||
|
custom_git_reference:
|
||||||
|
description: the git commit or branch we're going to use for the custom target
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
custom_git_target:
|
||||||
|
description: the custom git fork url we're going to use for the custom target (github.com/some-fork/rust-libp2p)
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
custom_interop_target:
|
||||||
|
description: in the case of cross-implementation testing, the implementation target (go | rust | nim)
|
||||||
|
required: false
|
||||||
|
type: string
|
||||||
|
push:
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
name: libp2p ping - go and rust test (all) with testground.
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
run-all-ping-latest:
|
||||||
|
uses: "./.github/workflows/run-composition.yml"
|
||||||
|
with:
|
||||||
|
composition_file: "ping/_compositions/all-interop-latest.toml"
|
||||||
|
custom_git_target: ${{ github.event.inputs.custom_git_target }} # nothing or "some-fork/go-libp2p"
|
||||||
|
custom_git_reference: ${{ github.event.inputs.custom_git_reference }} # a git reference
|
||||||
|
custom_interop_target: ${{ github.event.inputs.custom_interop_target }} # go | rust
|
||||||
|
testground_endpoint: ${{ github.event.inputs.testground_endpoint }}
|
||||||
|
test_repository: ${{ (github.event.inputs && '') || github.repository }}
|
||||||
|
test_ref: ${{ (github.event.inputs && '') || github.event.pull_request.head.sha || github.sha }}
|
||||||
|
run-all-ping-all:
|
||||||
|
uses: "./.github/workflows/run-composition.yml"
|
||||||
|
with:
|
||||||
|
composition_file: "ping/_compositions/all-interop.toml"
|
||||||
|
custom_git_target: ${{ github.event.inputs.custom_git_target }} # nothing or "some-fork/go-libp2p"
|
||||||
|
custom_git_reference: ${{ github.event.inputs.custom_git_reference }} # a git reference
|
||||||
|
custom_interop_target: ${{ github.event.inputs.custom_interop_target }} # go | rust
|
||||||
|
testground_endpoint: ${{ github.event.inputs.testground_endpoint }}
|
||||||
|
test_repository: ${{ (github.event.inputs && '') || github.repository }}
|
||||||
|
test_ref: ${{ (github.event.inputs && '') || github.event.pull_request.head.sha || github.sha }}
|
|
@ -1,5 +1,5 @@
|
||||||
[metadata]
|
[metadata]
|
||||||
name = "go-rust-cross-version-{{ or $.Env.InteropTarget "-" }}-{{ or $.Env.GitReference "" }}"
|
name = "all-latest-{{ or $.Env.InteropTarget "-" }}-{{ or $.Env.GitReference "" }}"
|
||||||
|
|
||||||
[global]
|
[global]
|
||||||
plan = "libp2p/ping"
|
plan = "libp2p/ping"
|
||||||
|
|
|
@ -0,0 +1,186 @@
|
||||||
|
[metadata]
|
||||||
|
name = "all-cross-version"
|
||||||
|
|
||||||
|
[global]
|
||||||
|
plan = "libp2p/ping"
|
||||||
|
case = "ping"
|
||||||
|
runner = "local:docker"
|
||||||
|
concurrent_builds = 1
|
||||||
|
|
||||||
|
[global.build_config]
|
||||||
|
enable_go_build_cache = false # see https://github.com/testground/testground/issues/1361
|
||||||
|
# disable testground's goproxy which hangs on github runners.
|
||||||
|
go_proxy_mode = "remote"
|
||||||
|
go_proxy_url = "https://proxy.golang.org"
|
||||||
|
|
||||||
|
{{ with (load_resource "./go.toml") }}
|
||||||
|
{{ range .groups }}
|
||||||
|
[[groups]]
|
||||||
|
id = "{{ .Id }}"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:go"
|
||||||
|
|
||||||
|
[groups.build]
|
||||||
|
selectors = ['{{ .Selector }}']
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./go/"
|
||||||
|
build_base_image = 'golang:{{ .GoVersion }}-buster'
|
||||||
|
modfile = "{{ .Modfile }}"
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with .master }}
|
||||||
|
[[groups]]
|
||||||
|
id = "master"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:go"
|
||||||
|
|
||||||
|
[groups.build]
|
||||||
|
selectors = ['{{ .Selector }}']
|
||||||
|
|
||||||
|
[[groups.build.dependencies]]
|
||||||
|
module = "github.com/libp2p/go-libp2p"
|
||||||
|
version = "master"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./go/"
|
||||||
|
build_base_image = 'golang:{{ .GoVersion }}-buster'
|
||||||
|
modfile = "{{ .Modfile }}"
|
||||||
|
|
||||||
|
[groups.build_config.dockerfile_extensions]
|
||||||
|
# deal with dependency changes in master until we create the new vx.y.z instance
|
||||||
|
pre_build = """
|
||||||
|
RUN cd ${PLAN_DIR} && \
|
||||||
|
go mod download github.com/libp2p/go-libp2p && \
|
||||||
|
go mod tidy -compat={{ .GoVersion }}
|
||||||
|
"""
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq $.Env.InteropTarget "go" }}
|
||||||
|
{{ if $.Env.GitReference }}
|
||||||
|
{{ with .custom }}
|
||||||
|
[[groups]]
|
||||||
|
id = "custom-go"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:go"
|
||||||
|
|
||||||
|
[groups.build]
|
||||||
|
selectors = ['{{ .Selector }}']
|
||||||
|
|
||||||
|
[[groups.build.dependencies]]
|
||||||
|
module = "github.com/libp2p/go-libp2p"
|
||||||
|
version = "{{ $.Env.GitReference }}"
|
||||||
|
{{ if $.Env.GitTarget }}
|
||||||
|
target = "{{ $.Env.GitTarget }}"
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./go/"
|
||||||
|
build_base_image = 'golang:{{ .GoVersion }}-buster'
|
||||||
|
modfile = "{{ .Modfile }}"
|
||||||
|
|
||||||
|
[groups.build_config.dockerfile_extensions]
|
||||||
|
# deal with dependency changes in master until we create the new vx.y.z instance
|
||||||
|
pre_build = """
|
||||||
|
RUN cd ${PLAN_DIR} && \
|
||||||
|
go mod download github.com/libp2p/go-libp2p && \
|
||||||
|
go mod tidy -compat={{ .GoVersion }}
|
||||||
|
"""
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with (load_resource "./rust.toml") }}
|
||||||
|
{{ range .groups }}
|
||||||
|
[[groups]]
|
||||||
|
id = "rust-{{ .Id }}"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:generic"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./rust/"
|
||||||
|
|
||||||
|
[groups.build_config.build_args]
|
||||||
|
CARGO_FEATURES = '{{ .CargoFeatures }}'
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with .master }}
|
||||||
|
[[groups]]
|
||||||
|
id = "rust-master"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:generic"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./rust/"
|
||||||
|
|
||||||
|
[groups.build_config.build_args]
|
||||||
|
CARGO_FEATURES = '{{ .CargoFeatures }}'
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq $.Env.InteropTarget "rust" }}
|
||||||
|
{{ if $.Env.GitReference }}
|
||||||
|
{{ with .custom }}
|
||||||
|
[[groups]]
|
||||||
|
id = "custom-rust"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:generic"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./rust/"
|
||||||
|
|
||||||
|
[groups.build_config.build_args]
|
||||||
|
CARGO_FEATURES = '{{ .CargoFeatures }}'
|
||||||
|
CARGO_REMOVE = '{{ .CargoFeatures }}'
|
||||||
|
CARGO_PATCH = """
|
||||||
|
{{ .CargoFeatures }} = {package = "libp2p", git = "https://{{ or $.Env.GitTarget "github.com/libp2p/rust-libp2p" }}", rev = "{{ $.Env.GitReference }}", default_features = false, features = [ "websocket", "mplex", "yamux", "tcp", "ping", "noise", "dns", "async-std", "rsa" ], optional = true}
|
||||||
|
"""
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with (load_resource "./nim.toml") }}
|
||||||
|
{{ range .groups }}
|
||||||
|
[[groups]]
|
||||||
|
id = "nim-latest-{{ .Id }}"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:generic"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./nim/"
|
||||||
|
[groups.build_config.build_args]
|
||||||
|
Libp2pVersion = '{{ .Id }}'
|
||||||
|
NimVersion = '{{ .NimVersion }}'
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with .custom }}
|
||||||
|
[[groups]]
|
||||||
|
id = "nim-unstable"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:generic"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./nim/"
|
||||||
|
[groups.build_config.build_args]
|
||||||
|
Libp2pVersion = '#unstable'
|
||||||
|
NimVersion = '{{ .NimVersion }}'
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if eq $.Env.InteropTarget "nim" }}
|
||||||
|
{{ if $.Env.GitReference }}
|
||||||
|
{{ with .custom }}
|
||||||
|
[[groups]]
|
||||||
|
id = "nim-custom-{{ $.Env.GitReference }}"
|
||||||
|
instances = { count = 1 }
|
||||||
|
builder = "docker:generic"
|
||||||
|
|
||||||
|
[groups.build_config]
|
||||||
|
path = "./nim/"
|
||||||
|
[groups.build_config.build_args]
|
||||||
|
Libp2pVersion = '#{{ $.Env.GitReference }}'
|
||||||
|
NimVersion = '{{ .NimVersion }}'
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
Loading…
Reference in New Issue