- this project used to github golang lib project
We welcome community contributions to this project.
Please read Contributor Guide for more information on how to get started.
请阅读有关 贡献者指南 以获取更多如何入门的信息
in go mod project
# before above global settings
# test version info
$ git ls-remote -q https://github.com/woodpecker-kit/woodpecker-tools.git
# test depends see full version
$ go list -mod readonly -v -m -versions github.com/woodpecker-kit/woodpecker-tools
# or use last version add go.mod by script
$ echo "go mod edit -require=$(go list -mod=readonly -m -versions github.com/woodpecker-kit/woodpecker-tools | awk '{print $1 "@" $NF}')"
$ echo "go mod vendor"
-
wd_log
package support debug at line number and gid -
wd_flag
package is flag for woodpecker pluginwd_flag.SetTimeFormat(format string)
will change time format like2006-01-02 15:04:05
, must beforewd_urfave_cli_v2.UrfaveCliBindInfo()
-
wd_info.WoodpeckerInfo
is plugin most use env args from woodpecker-ci/woodpecker -
wd_info.CiSystemVersionMinimumSupport
andwd_info.CiSystemVersionConstraint
can check plugin support ci system version -
wd_urfave_cli_v2.WoodpeckerUrfaveCliFlags()
bind cli as github.com/urfave/cli/v2 -
wd_info.WoodpeckerInfoSupportVersion
support version begin2.0.0
-
env_mock.MockEnvByStruct
support struct tagmock_env_key
ormock_env_default
for unit test of plugin1.19.+
addwd_mock.Fast*()
method for fast mockwd_mock.FastWorkSpace
for fast mock workspacewd_mock.FastCurrentStatus
for fast mock current status most usewd_info.BuildStatusSuccess
orwd_info.BuildStatusFailure
wd_mock.FastTag
for fast mock eventtag
wd_mock.FastPullRequest
for fast mock eventpull_request
wd_mock.FastPullRequestClose
for fast mock eventpull_request_closed
wd_mock.FastPushCommitBranch
for fast mock eventpush
commit branch
-
env_transfer.AddOrCoverEnvByKey
env_transfer.RemoveEnvByKey
andenv_transfer.SaveEnv2File
for transfer env between steps- please add
.env.woodpecker_transfer.local
at git ignore, to useenv_transfer.DefaultWriterFileName
to transfer env env_transfer.AddOrCoverEnvByKey
orenv_transfer.RemoveEnvByKey
will appendenv_transfer.PrefixTransfer
and upper case at runner env- load env can use
env_transfer.OverloadEnvFromFile
, most use file name asenv_transfer.DefaultWriterFileName
- please add
-
wd_steps_transfer.Out
andwd_steps_transfer.In
for transfer data between steps with same workflow- please add
.woodpecker_kit.steps.transfer
at git ignore, to usewd_steps_transfer.DefaultWriterFileName
to transfer data
- please add
-
env_kit
package use github.com/sinlov-go/unittest-kitenv_kit.FetchOsEnv*
andenv_kit.SetEnv*
for env get or setenv_kit.FindAllEnv4Print
,env_kit.FindAllEnvByPrefix
,env_kit.FindAllEnv4PrintAsSortJust
for find print env string
-
wd_template
for support Handlebars.js for golang- use
wd_template.RegisterSettings(DefaultFunctions)
once to register default functions then use
- use
-
wd_short_info.ParseWoodpeckerInfo2Short
can parsewd_info.WoodpeckerInfo
towd_short_info.WoodpeckerInfoShot
(v1.18+) for template more clear - code check
- full check by golang version
- full check for docker build
- minimum go version: go 1.19
- change
go 1.19
,^1.19
,1.19.12-bullseye
,1.19.12
to new go version
lib | version |
---|---|
https://github.com/stretchr/testify | v1.8.4 |
https://github.com/sebdah/goldie | v2.5.3 |
- more libs see go.mod
- see example of app.go
- see test case of wd_env_mock.go
# It needs to be executed after the first use or update of dependencies.
$ make init dep
- test code
$ make test testBenchmark
add main.go file and run
# run at env dev use cmd/woodpecker-tools/main.go
$ make dev
- ci to fast check
# check style at local
$ make style
# run ci at local
$ make ci
# then test build as test/Dockerfile
$ make dockerTestRestartLatest
# clean test build
$ make dockerTestPruneLatest
# more info see
$ make helpDocker