for what
- this project used to github golang lib project
Contributing
We welcome community contributions to this project.
Please read Contributor Guide for more information on how to get started.
请阅读有关 贡献者指南 以获取更多如何入门的信息
depends
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"
Features
-
wd_log
package support debug at line number and gid
-
wd_flag
package is flag for woodpecker plugin
wd_flag.SetTimeFormat(format string)
will change time format like 2006-01-02 15:04:05
, must
before wd_urfave_cli_v2.UrfaveCliBindInfo()
-
wd_info.WoodpeckerInfo
is plugin most use env args
from woodpecker-ci/woodpecker
-
wd_info.CiSystemVersionMinimumSupport
and wd_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 begin 2.0.0
-
env_mock.MockEnvByStruct
support struct tag mock_env_key
or mock_env_default
for unit test of plugin
1.19.+
add wd_mock.Fast*()
method for fast mock
wd_mock.FastWorkSpace
for fast mock workspace
wd_mock.FastCurrentStatus
for fast mock current status most use wd_info.BuildStatusSuccess
or wd_info.BuildStatusFailure
wd_mock.FastTag
for fast mock event tag
wd_mock.FastPullRequest
for fast mock event pull_request
wd_mock.FastPullRequestClose
for fast mock event pull_request_closed
wd_mock.FastPushCommitBranch
for fast mock event push
commit branch
-
env_transfer.AddOrCoverEnvByKey
env_transfer.RemoveEnvByKey
and env_transfer.SaveEnv2File
for transfer env
between steps
- please add
.env.woodpecker_transfer.local
at git ignore, to use env_transfer.DefaultWriterFileName
to transfer
env
env_transfer.AddOrCoverEnvByKey
or env_transfer.RemoveEnvByKey
will append env_transfer.PrefixTransfer
and
upper case at runner env
- load env can use
env_transfer.OverloadEnvFromFile
, most use file name as env_transfer.DefaultWriterFileName
-
wd_steps_transfer.Out
and wd_steps_transfer.In
for transfer data between steps with same workflow
- please add
.woodpecker_kit.steps.transfer
at git ignore, to use wd_steps_transfer.DefaultWriterFileName
to
transfer data
-
env_kit
package use github.com/sinlov-go/unittest-kit
env_kit.FetchOsEnv*
and env_kit.SetEnv*
for env get or set
env_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
-
wd_short_info.ParseWoodpeckerInfo2Short
can parse wd_info.WoodpeckerInfo
to wd_short_info.WoodpeckerInfoShot
(v1.18+)
for template more clear
- code check
- full check by golang version
- full check for docker build
env
- minimum go version: go 1.19
- change
go 1.19
, ^1.19
, 1.19.12-bullseye
, 1.19.12
to new go version
libs
usage
wd_info.WoodpeckerInfo
env_mock.MockEnvByStruct
dev
# It needs to be executed after the first use or update of dependencies.
$ make init dep
$ make test testBenchmark
add main.go file and run
# run at env dev use cmd/woodpecker-tools/main.go
$ make dev
# check style at local
$ make style
# run ci at local
$ make ci
docker
# then test build as test/Dockerfile
$ make dockerTestRestartLatest
# clean test build
$ make dockerTestPruneLatest
# more info see
$ make helpDocker