Skip to content

Commit 7fc00b0

Browse files
Merge branch 'main' into sfc
2 parents 42771b9 + 13327cb commit 7fc00b0

262 files changed

Lines changed: 43699 additions & 32557 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Set up Go
1717
uses: actions/setup-go@v4
1818
with:
19-
go-version: '1.25.0'
19+
go-version-file: 'go.mod'
2020

2121
- name: Cache Go modules
2222
uses: actions/cache@v4
@@ -31,8 +31,13 @@ jobs:
3131
- name: Install dependencies
3232
run: make deps
3333

34-
- name: Run checks (lint, vet, fmt-check, test)
35-
run: make check
34+
- name: golangci-lint
35+
uses: golangci/golangci-lint-action@v8
36+
with:
37+
version: v2.6.0
38+
39+
- name: Run checks (vet, fmt-check, test)
40+
run: make vet fmt-check test
3641

3742
# Note: Validation tests with real cloud providers run in separate workflows
3843
# See .github/workflows/validation-*.yml for provider-specific validation tests
@@ -63,7 +68,7 @@ jobs:
6368
- name: Set up Go
6469
uses: actions/setup-go@v4
6570
with:
66-
go-version: '1.23.0'
71+
go-version-file: 'go.mod'
6772

6873
- name: Cache Go modules
6974
uses: actions/cache@v4
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
name: AWS Validation Tests
2+
3+
on:
4+
schedule:
5+
# Run daily at 2 AM UTC
6+
- cron: "0 2 * * *"
7+
workflow_dispatch:
8+
# Allow manual triggering
9+
pull_request:
10+
paths:
11+
- "v1/providers/aws/**"
12+
- "internal/validation/**"
13+
- "v1/**"
14+
branches: [main]
15+
16+
jobs:
17+
aws-validation:
18+
name: AWS Provider Validation
19+
runs-on: ubuntu-latest
20+
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request'
21+
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- name: Set up Go
26+
uses: actions/setup-go@v4
27+
with:
28+
go-version-file: 'go.mod'
29+
30+
- name: Cache Go modules
31+
uses: actions/cache@v4
32+
with:
33+
path: |
34+
~/.cache/go-build
35+
~/go/pkg/mod
36+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
37+
restore-keys: |
38+
${{ runner.os }}-go-
39+
40+
- name: Install dependencies
41+
run: make deps
42+
43+
- name: Run AWS validation tests
44+
env:
45+
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
46+
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
47+
TEST_USER_PRIVATE_KEY_PEM_BASE64: ${{ secrets.TEST_USER_PRIVATE_KEY_PEM_BASE64 }}
48+
VALIDATION_TEST: true
49+
run: |
50+
cd v1/providers/aws
51+
go test -v -short=false -timeout=30m ./...
52+
53+
- name: Upload test results
54+
uses: actions/upload-artifact@v4
55+
if: always()
56+
with:
57+
name: aws-validation-results
58+
path: |
59+
v1/providers/aws/coverage.out

.github/workflows/validation-lambdalabs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Set up Go
2626
uses: actions/setup-go@v4
2727
with:
28-
go-version: '1.23.0'
28+
go-version-file: 'go.mod'
2929

3030
- name: Cache Go modules
3131
uses: actions/cache@v4
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Nebius Validation Tests
2+
3+
on:
4+
schedule:
5+
# Run daily at 2 AM UTC
6+
- cron: "0 2 * * *"
7+
workflow_dispatch:
8+
# Allow manual triggering
9+
pull_request:
10+
paths:
11+
- "v1/providers/nebius/**"
12+
- "internal/validation/**"
13+
- "v1/**"
14+
branches: [main]
15+
16+
jobs:
17+
nebius-validation:
18+
name: Nebius Provider Validation
19+
runs-on: ubuntu-latest
20+
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'pull_request'
21+
22+
steps:
23+
- uses: actions/checkout@v4
24+
25+
- name: Set up Go
26+
uses: actions/setup-go@v4
27+
with:
28+
go-version-file: 'go.mod'
29+
30+
- name: Cache Go modules
31+
uses: actions/cache@v4
32+
with:
33+
path: |
34+
~/.cache/go-build
35+
~/go/pkg/mod
36+
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
37+
restore-keys: |
38+
${{ runner.os }}-go-
39+
40+
- name: Install dependencies
41+
run: make deps
42+
43+
- name: Run Nebius validation tests
44+
env:
45+
NEBIUS_PUBLIC_KEY_ID: ${{ secrets.NEBIUS_PUBLIC_KEY_ID }}
46+
NEBIUS_PRIVATE_KEY_PEM_BASE64: ${{ secrets.NEBIUS_PRIVATE_KEY_PEM_BASE64 }}
47+
NEBIUS_SERVICE_ACCOUNT_ID: ${{ secrets.NEBIUS_SERVICE_ACCOUNT_ID }}
48+
NEBIUS_PROJECT_ID: ${{ secrets.NEBIUS_PROJECT_ID }}
49+
TEST_USER_PRIVATE_KEY_PEM_BASE64: ${{ secrets.TEST_USER_PRIVATE_KEY_PEM_BASE64 }}
50+
VALIDATION_TEST: true
51+
run: |
52+
cd v1/providers/nebius
53+
go test -v -short=false -timeout=30m ./...
54+
55+
- name: Upload test results
56+
uses: actions/upload-artifact@v4
57+
if: always()
58+
with:
59+
name: nebius-validation-results
60+
path: |
61+
v1/providers/nebius/coverage.out

.github/workflows/validation-shadeform.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
- name: Set up Go
2626
uses: actions/setup-go@v4
2727
with:
28-
go-version: '1.23.0'
28+
go-version-file: 'go.mod'
2929

3030
- name: Cache Go modules
3131
uses: actions/cache@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.env
22
__debug_bin*
33
.idea/*
4+
coverage/*

.golangci.bck.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
run:
2+
build-tags:
3+
- tasks
4+
linters-settings:
5+
goimports:
6+
local-prefixes: github.com/brevdev/dev-plane
7+
revive:
8+
# min-confidence: 0.8
9+
rules:
10+
- name: blank-imports
11+
- name: context-as-argument
12+
- name: context-as-argument
13+
- name: context-keys-type
14+
- name: dot-imports
15+
- name: error-return
16+
- name: error-strings
17+
- name: error-naming
18+
- name: if-return
19+
- name: increment-decrement
20+
- name: var-naming
21+
- name: var-declaration
22+
# - name: package-comments
23+
- name: range
24+
- name: receiver-naming
25+
- name: time-naming
26+
- name: unexported-return
27+
- name: errorf
28+
- name: empty-block
29+
- name: superfluous-else
30+
- name: unused-parameter
31+
- name: unreachable-code
32+
- name: redefines-builtin-id
33+
gocyclo:
34+
min-complexity: 15
35+
misspell:
36+
locale: US
37+
nolintlint:
38+
# allow-leading-space: false # require machine-readable nolint directives (with no leading space)
39+
allow-unused: false # report any unused nolint directives
40+
require-explanation: true # require an explanation for nolint directives
41+
require-specific: false # don't require nolint directives to be specific about which linter is being skipped
42+
funlen:
43+
lines: 100
44+
errcheck:
45+
exclude-functions:
46+
- (*encoding/json.Encoder).Encode
47+
wrapcheck:
48+
ignoreSigs:
49+
- .WrapAndTrace
50+
- .Errorf
51+
- .Wrap
52+
- .New
53+
- .ValidateStruct
54+
- .Permanent
55+
- .Decode
56+
stylecheck:
57+
checks: ["all", "-ST1020", "-ST1000", "-ST1021"]
58+
59+
linters:
60+
# please, do not use `enable-all`: it's deprecated and will be removed soon.
61+
# inverted configuration with `enable-all` and `disable` is not scalable during updates of golangci-lint
62+
disable-all: true
63+
enable:
64+
- errcheck
65+
# - gosimple # don't like
66+
- govet
67+
- ineffassign
68+
# - staticcheck # broken in collections pkg?
69+
- typecheck
70+
- bodyclose
71+
- unused
72+
# - depguard
73+
- dupl
74+
- copyloopvar
75+
- forcetypeassert
76+
- funlen
77+
# - gci # don't like
78+
- gocognit
79+
- goconst
80+
- gocritic
81+
- gocyclo
82+
# - godot # don't like
83+
- gofumpt
84+
- revive
85+
# - gomnd # don't like
86+
- goprintffuncname
87+
- gosec
88+
# - ifshort # don't like
89+
- misspell
90+
- noctx
91+
- nolintlint
92+
- rowserrcheck # broken with generics
93+
- sqlclosecheck # broken with generics
94+
- stylecheck
95+
# - thelper
96+
- tparallel
97+
- unconvert
98+
- unparam
99+
- whitespace
100+
# - errorlint
101+
# - goerr113
102+
# - wrapcheck
103+
issues:
104+
# enable issues excluded by default
105+
exclude-use-default: false
106+
exclude:
107+
- composites
108+
exclude-dirs:
109+
- internal/lambdalabs/gen

0 commit comments

Comments
 (0)