Complete rewrite of the VirtFusion Terraform provider with full API coverage: - 20 managed resources (server, build, SSH key, user, firewall, IP blocks, etc.) - 30 data sources (hypervisors, packages, servers, IP blocks, self-service, etc.) - New HTTP client with proper error handling, query parameter support, and automatic multipage pagination via GetAllPages (fetches all pages from Laravel-style paginated endpoints and merges into a single response) - Fixed type mismatches against live API: ServerData.Suspended (int→bool), IPBlockData.Type (string→int), PackageData json tags (primaryStorage, etc.), ServerData nested CPU/Settings/Resources structure, HypervisorGroupResources array response - Configurable results-per-page (default 300) on all list data sources - Migrated CI from GitHub Actions to Gitea Actions - Updated goreleaser config, go.mod dependencies, and examples Verified against live VirtFusion instance at cp.vps.ezscale.tech: all data sources return correct data with full pagination support. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
67 lines
1.3 KiB
YAML
67 lines
1.3 KiB
YAML
version: 2
|
|
|
|
before:
|
|
hooks:
|
|
- go mod tidy
|
|
|
|
builds:
|
|
- env:
|
|
- CGO_ENABLED=0
|
|
mod_timestamp: '{{ .CommitTimestamp }}'
|
|
flags:
|
|
- -trimpath
|
|
ldflags:
|
|
- '-s -w -X main.version={{.Version}} -X main.commit={{.Commit}}'
|
|
goos:
|
|
- freebsd
|
|
- windows
|
|
- linux
|
|
- darwin
|
|
goarch:
|
|
- amd64
|
|
- '386'
|
|
- arm
|
|
- arm64
|
|
ignore:
|
|
- goos: darwin
|
|
goarch: '386'
|
|
binary: '{{ .ProjectName }}_v{{ .Version }}'
|
|
|
|
archives:
|
|
- format: zip
|
|
name_template: '{{ .ProjectName }}_{{ .Version }}_{{ .Os }}_{{ .Arch }}'
|
|
|
|
checksum:
|
|
extra_files:
|
|
- glob: 'terraform-registry-manifest.json'
|
|
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
|
|
name_template: '{{ .ProjectName }}_{{ .Version }}_SHA256SUMS'
|
|
algorithm: sha256
|
|
|
|
signs:
|
|
- artifacts: checksum
|
|
args:
|
|
- "--batch"
|
|
- "--local-user"
|
|
- "{{ .Env.GPG_FINGERPRINT }}"
|
|
- "--output"
|
|
- "${signature}"
|
|
- "--detach-sign"
|
|
- "${artifact}"
|
|
|
|
release:
|
|
github:
|
|
owner: EZSCALE
|
|
name: terraform-provider-virtfusion
|
|
extra_files:
|
|
- glob: 'terraform-registry-manifest.json'
|
|
name_template: '{{ .ProjectName }}_{{ .Version }}_manifest.json'
|
|
|
|
changelog:
|
|
sort: asc
|
|
filters:
|
|
exclude:
|
|
- '^docs:'
|
|
- '^test:'
|
|
- '^ci:'
|