-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
77 changed files
with
4,397 additions
and
2,849 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
name: Framework Golden Tests Examples | ||
on: | ||
push: | ||
|
||
jobs: | ||
test: | ||
defaults: | ||
run: | ||
working-directory: framework/examples/myproject | ||
env: | ||
LOKI_TENANT_ID: promtail | ||
LOKI_URL: http://localhost:3030/loki/api/v1/push | ||
runs-on: ubuntu-latest | ||
permissions: | ||
id-token: write | ||
contents: read | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
test: | ||
- name: TestSmoke | ||
config: smoke.toml | ||
count: 1 | ||
timeout: 10m | ||
- name: TestLoad | ||
config: load.toml | ||
count: 1 | ||
timeout: 10m | ||
- name: TestChaos | ||
config: chaos.toml | ||
count: 1 | ||
timeout: 10m | ||
- name: TestUpgradeAll | ||
config: upgrade_all.toml | ||
count: 1 | ||
timeout: 10m | ||
- name: TestUpgradeSome | ||
config: upgrade_some.toml | ||
count: 1 | ||
timeout: 10m | ||
steps: | ||
- name: Checkout repo | ||
uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4 | ||
- name: Configure AWS credentials using OIDC | ||
uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2 | ||
with: | ||
role-to-assume: ${{ secrets.PUBLIC_AWS_ECR_ROLE }} | ||
aws-region: us-east-1 | ||
- name: Authenticate to ECR Public | ||
id: login-ecr-public | ||
uses: aws-actions/amazon-ecr-login@062b18b96a7aff071d4dc91bc00c4c1a7945b076 # v2.0.1 | ||
with: | ||
registry-type: public | ||
- name: Check for changes in Framework | ||
uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | ||
id: changes | ||
with: | ||
filters: | | ||
src: | ||
- 'framework/**' | ||
- name: Set up Go | ||
uses: actions/setup-go@v4 | ||
with: | ||
go-version: 1.22.8 | ||
- name: Cache Go modules | ||
uses: actions/cache@v3 | ||
with: | ||
path: | | ||
~/.cache/go-build | ||
~/go/pkg/mod | ||
key: go-modules-${{ hashFiles('framework/examples/myproject/go.sum') }}-${{ runner.os }}-framework-golden-examples | ||
restore-keys: | | ||
go-modules-${{ runner.os }}-framework-golden-examples | ||
go-modules-${{ runner.os }} | ||
- name: Install dependencies | ||
run: go mod download | ||
- name: Run Docker Component Tests | ||
if: steps.changes.outputs.src == 'true' | ||
env: | ||
CTF_CONFIGS: ${{ matrix.test.config }} | ||
run: | | ||
go test -timeout ${{ matrix.test.timeout }} -v -count ${{ matrix.test.count }} -run ${{ matrix.test.name }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,106 @@ | ||
# Node | ||
|
||
Here we provide *full* configuration parameters for `Node` | ||
|
||
<div class="warning"> | ||
Here we provide full configuration reference, if you want to copy and run it, please remove all .out fields before! | ||
</div> | ||
|
||
|
||
## Configuration | ||
```toml | ||
[cl_node] | ||
# Optional URL for fake data provider URL | ||
# usually set up in test with local mock server | ||
data_provider_url = "http://example.com" | ||
|
||
[cl_node.db] | ||
# PostgreSQL image version and tag | ||
image = "postgres:15.6" | ||
# Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs | ||
pull_image = true | ||
|
||
[cl_node.node] | ||
# A list of paths to capability binaries | ||
capabilities = ["./capability_1", "./capability_2"] | ||
# Default capabilities directory inside container | ||
capabilities_container_dir = "/home/capabilities" | ||
# Image to use, you can either provide "image" or "docker_file" + "docker_ctx" fields | ||
image = "public.ecr.aws/chainlink/chainlink:v2.17.0" | ||
# Path to your Chainlink Dockerfile | ||
docker_file = "../../core/chainlink.Dockerfile" | ||
# Path to docker context that should be used to build from | ||
docker_ctx = "../.." | ||
# Optional name for image we build, default is "ctftmp" | ||
docker_image_name = "ctftmp" | ||
# Pulls the image every time if set to 'true', used like that in CI. Can be set to 'false' to speed up local runs | ||
pull_image = true | ||
# Overrides Chainlink node TOML configuration | ||
# can be multiline, see example | ||
user_config_overrides = """ | ||
[Log] | ||
level = 'info' | ||
""" | ||
# Overrides Chainlink node secrets TOML configuration | ||
# you can only add fields, overriding existing fields is prohibited by Chainlink node | ||
user_secrets_overrides = """ | ||
[AnotherSecret] | ||
mySecret = 'a' | ||
""" | ||
|
||
# Outputs are the results of deploying a component that can be used by another component | ||
[cl_node.out] | ||
# If 'use_cache' equals 'true' we skip component setup when we run the test and return the outputs | ||
use_cache = true | ||
# Describes deployed or external Chainlink node | ||
[cl_node.out.node] | ||
# Host Docker URLs the test uses | ||
# in case of using external component you can replace these URLs with another deployment | ||
p2p_url = "http://127.0.0.1:32812" | ||
url = "http://127.0.0.1:32847" | ||
|
||
# Describes deployed or external Chainlink node | ||
[cl_node.out.postgresql] | ||
# PostgreSQL connection string | ||
# in case of using external database can be overriden | ||
url = "postgresql://chainlink:[email protected]:32846/chainlink?sslmode=disable" | ||
``` | ||
|
||
## Usage | ||
```golang | ||
package yourpackage_test | ||
|
||
import ( | ||
"fmt" | ||
"github.com/smartcontractkit/chainlink-testing-framework/framework" | ||
"github.com/smartcontractkit/chainlink-testing-framework/framework/components/blockchain" | ||
"github.com/smartcontractkit/chainlink-testing-framework/framework/components/clnode" | ||
"github.com/stretchr/testify/require" | ||
"testing" | ||
) | ||
|
||
type Step2Cfg struct { | ||
BlockchainA *blockchain.Input `toml:"blockchain_a" validate:"required"` | ||
CLNode *clnode.Input `toml:"cl_node" validate:"required"` | ||
} | ||
|
||
func TestMe(t *testing.T) { | ||
in, err := framework.Load[Step2Cfg](t) | ||
require.NoError(t, err) | ||
|
||
bc, err := blockchain.NewBlockchainNetwork(in.BlockchainA) | ||
require.NoError(t, err) | ||
|
||
networkCfg, err := clnode.NewNetworkCfgOneNetworkAllNodes(bc) | ||
require.NoError(t, err) | ||
in.CLNode.Node.TestConfigOverrides = networkCfg | ||
|
||
output, err := clnode.NewNodeWithDB(in.CLNode) | ||
require.NoError(t, err) | ||
|
||
t.Run("test something", func(t *testing.T) { | ||
fmt.Printf("node url: %s\n", output.Node.HostURL) | ||
require.NotEmpty(t, output.Node.HostURL) | ||
}) | ||
} | ||
``` |
Oops, something went wrong.