Sign inSign up

sinlov/woodpecker-file-browser-upload

By sinlov

Updated over 1 year ago

woodpecker CI to support https://github.com/filebrowser/filebrowser

Image
0

2.3K

sinlov/woodpecker-file-browser-upload repository overview

woodpecker-file-browser-upload

Settings

NameRequiredDefault valueDescription
debugnofalseopen debug log or open by env PLUGIN_DEBUG
file-browser-timeout-send-secondno60push each file timeout push second, must gather than 60.default: 60
file-browser-hostyesnonefile_browser host like http://127.0.0.1:80
file-browser-usernameyesnonefile_browser username
file-browser-user-passwordyesnonefile_browser user password
file-browser-work-spacenononefile_browser work space. default "" will use env:CI_WORKSPACE
file-browser-remote-root-pathyesnonesend to file_browser base path
file-browser-dist-typeyesnonetype of dist file graph only can use: git, custom
file-browser-dist-graphno""file-browser-dist-type setting custom dist graph define
file-browser-target-dist-root-pathno""path of file_browser work on root, can set "". default: ""
file-browser-file-globyesnoneglobs list of send to file_browser under file-browser-target-dist-root-path
file-browser-file-regularnononeregular of send to file_browser under file-browser-target-dist-root-path
file-browser-share-link-enablenofalseshare dist dir as link, default: false
file-browser-share-link-expireno0if set 0, will allow share_link exist forever,default: 0
file-browser-share-link-unitnodaystake effect by open share_link, only can use as [ days hours minutes seconds ]
file-browser-share-link-passwdno""password of share_link, if not set will not use password, default: ""
file-browser-share-auto-password-enablenofalsepassword of share_link auto, if open this will cover settings.file-browser-share-link-passwd. default: false

Hide Settings:

NameRequiredDefault valueDescription
timeout_secondno10command timeout setting by second
woodpecker-kit-steps-transfer-file-pathno.woodpecker_kit.steps.transferSteps transfer file path, default by wd_steps_transfer.DefaultKitStepsFileName
woodpecker-kit-steps-transfer-disable-outnofalseSteps transfer write disable out

Example

  • workflow with backend docker

docker hub version semver docker hub image size docker hub image pulls

labels:
  backend: docker
steps:
  woodpecker-file-browser-upload:
    image: sinlov/woodpecker-file-browser-upload:latest
    pull: false
    settings:
      # debug: false # plugin debug switch
      file-browser-host: "http://127.0.0.1:80" # must set args, file_browser host like http://127.0.0.1:80
      file-browser-username: # must set args, file_browser username
        # https://woodpecker-ci.org/docs/usage/secrets
        from_secret: file_browser_user_name
      file-browser-user-password: # must set args, file_browser user password
        from_secret: file_browser_user_passwd
      file-browser-remote-root-path: dist/ # must set args, send to file_browser base path
      file-browser-dist-type: git # must set args, type of dist file graph only can use: git, custom
      file-browser-file-glob: # must set args, globs list of send to file_browser under file-browser-target-dist-root-path
        - "**/*.tar.gz"
        - "**/*.sha256"
      file-browser-share-link-enable: true # share dist dir as link, default: false
      file-browser-share-link-expire: 0 # if set 0, will allow share_link exist forever,default: 0
      file-browser-share-link-unit: days # take effect by open share_link, only can use as [ days hours minutes seconds ]
      file-browser-share-auto-password-enable: true # password of share_link auto, if open this will cover settings.file-browser-share-link-passwd. default: false
  • workflow with backend local, must install at local and effective at evn PATH

GitHub license GitHub latest SemVer tag) GitHub release)

  • install at ${GOPATH}/bin, latest
go install -a github.com/woodpecker-kit/woodpecker-file-browser-upload/cmd/woodpecker-file-browser-upload@latest
  • install at ${GOPATH}/bin, v1.0.0
go install -v github.com/woodpecker-kit/woodpecker-file-browser-upload/cmd/[email protected]
labels:
  backend: local
steps:
  woodpecker-file-browser-upload:
    image: woodpecker-file-browser-upload
    settings:
      # debug: false # plugin debug switch
      file-browser-host: "http://127.0.0.1:80" # must set args, file_browser host like http://127.0.0.1:80
      file-browser-username: # must set args, file_browser username
        # https://woodpecker-ci.org/docs/usage/secrets
        from_secret: file_browser_user_name
      file-browser-user-password: # must set args, file_browser user password
        from_secret: file_browser_user_passwd
      file-browser-remote-root-path: dist/ # must set args, send to file_browser base path
      file-browser-dist-type: git # must set args, type of dist file graph only can use: git, custom
      file-browser-file-glob: # must set args, globs list of send to file_browser under file-browser-target-dist-root-path
        - "**/*.tar.gz"
        - "**/*.sha256"
      file-browser-share-link-enable: true # share dist dir as link, default: false
      file-browser-share-link-expire: 0 # if set 0, will allow share_link exist forever,default: 0
      file-browser-share-link-unit: days # take effect by open share_link, only can use as [ days hours minutes seconds ]
      file-browser-share-auto-password-enable: true # password of share_link auto, if open this will cover settings.file-browser-share-link-passwd. default: false
  • full config
labels:
  backend: docker
steps:
  woodpecker-file-browser-upload:
    image: sinlov/woodpecker-file-browser-upload:latest
    pull: false
    settings:
      debug: false # plugin debug switch
      timeout_second: 10 # api timeout default: 10
      file-browser-timeout-send-second: 60 # push each file timeout push second, must gather than 60.default: 60
      file-browser-host: # must set args, file_browser base url, like http://127.0.0.1:80
        # https://woodpecker-ci.org/docs/usage/secrets
        from_secret: file_browser_host_url
      file-browser-username: # must set args, file_browser username
        from_secret: file_browser_user_name
      file-browser-user-password: # must set args, file_browser user password
        from_secret: file_browser_user_passwd
      file-browser-work-space: "" # file_browser work space. default "" will use env:CI_WORKSPACE
      file-browser-remote-root-path: dist/ # must set args, send to file_browser base path
      file-browser-dist-type: custom # must set args, type of dist file graph only can use: git, custom
      file-browser-dist-graph: "{{ Repo.Hostname }}/{{ Repo.OwnerName }}/{{ Repo.ShortName }}/s/{{ Build.Number }}/{{ Build.Number }}-{{ Stage.Finished }}"
      file-browser-target-dist-root-path: dist/ # path of file_browser work on root, can set "". default: ""
      file-browser-file-glob: # must set args, globs list of send to file_browser under file-browser-target-dist-root-path
        - "**/*.tar.gz"
        - "**/*.sha256"
      file-browser-file-regular: .*.tar.gz # must set args, regular of send to file_browser under file-browser-target-dist-root-path
      file-browser-share-link-enable: true # share dist dir as link, default: false
      file-browser-share-link-expire: 0 # if set 0, will allow share_link exist forever,default: 0
      file-browser-share-link-unit: days # take effect by open share_link, only can use as [ days hours minutes seconds ]
      file-browser-share-link-passwd: "" # password of share_link, if not set will not use password, default: ""
      file-browser-share-auto-password-enable: false # password of share_link auto , if open this will cover settings.file-browser-share-link-passwd. default: false
Out
  • just add .woodpecker_kit.steps.transfer at git ignore
  • will add out key wd_share_file_browser_upload.WdShareKeyFileBrowserUpload struct as wd_share_file_browser_upload.WdShareFileBrowserUpload
{
  "is_send_success": true,
  "host_url": "http://192.168.50.199:59999/",
  "file_browser_user_name": "share",
  "resource_url": "dist/woodpecker-kit/guidance-woodpecker-agent/tag/v1.0.0/10/9c764dd4/",
  "download_url": "http://192.168.50.199:59999/share/Q9yy3zSh",
  "download_passwd": "qsAbWK00"
}
settings.debug
  • if open settings.debug will try file browser use override for debug.
  • if open settings.woodpecker-kit-steps-transfer-disable-out will disable out of wd_steps_transfer
  • please close settings.debug in production models
file-browser-dist-type

template use struct wd_short_info.WoodpeckerInfoShort

use file-browser-dist-type = git, send to filebrowser file tree like

# default
${file-browser-remote-root-path}/
	{{Repo.Hostname}}/
		{{Repo.OwnerName}}/
			{{Repo.ShortName}}/
				b/
					{{Build.Number}}/
						{{Commit.Branch}}/
							{{Commit.Sha[0:8]}}

# if in pull request
${file-browser-remote-root-path}/
	{{Repo.Hostname}}/
		{{Repo.OwnerName}}/
			{{Repo.ShortName}}/
				pr/
					{{Build.PR}}/
						{{Build.Number}}/
							{{Commit.Sha[0:8]}}

# if in tag
${file-browser-remote-root-path}/
	{{Repo.Hostname}}/
		{{Repo.OwnerName}}/
			{{Repo.ShortName}}/
				tag/
					{{Build.Tag}}/
						{{Build.Number}}/
							{{Commit.Sha[0:8]}}
custom dist graph
  • you can use file-browser-dist-type = custom, like
{{ Repo.Hostname }}/{{ Repo.OwnerName }}/{{ Repo.ShortName }}/s/{{ Build.Number }}/{{ Build.Number }}-{{ Stage.Finished }}

// will out like this will append ${file-browser-remote-root-path} as: dist/
dist/gitea.domain.com/woodpecker-kit/guidance-woodpecker-agent/s/10/10-1705658166

Tag summary

Content type

Image

Digest

sha256:ebbd13e12

Size

6.7 MB

Last updated

over 1 year ago

docker pull sinlov/woodpecker-file-browser-upload