You've already forked woodpecker
mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2026-06-03 16:35:37 +02:00
Release freebsd/openbsd as binary not container (#6610)
freebsd now has binaries released too, the oci images stay. openbsd gets oci images removed, but binaries added.
This commit is contained in:
@@ -38,7 +38,7 @@ steps:
|
||||
- apt install -y tree
|
||||
- make cross-compile-server
|
||||
environment:
|
||||
PLATFORMS: linux|arm64/v8;linux|amd64;linux|riscv64;windows|amd64
|
||||
PLATFORMS: linux|arm64/v8;linux|amd64;linux|riscv64;windows|amd64;freebsd|amd64
|
||||
TAGS: bindata sqlite sqlite_unlock_notify netgo
|
||||
ARCHIVE_IT: '1'
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ variables:
|
||||
- &node_image 'docker.io/node:24-alpine'
|
||||
- &xgo_image 'docker.io/techknowlogick/xgo:go-1.26.x'
|
||||
- &buildx_plugin 'docker.io/woodpeckerci/plugin-docker-buildx:6.1.0'
|
||||
- &platforms_release 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386,linux/amd64,linux/ppc64le,linux/riscv64,linux/s390x,freebsd/arm64,freebsd/amd64,openbsd/arm64,openbsd/amd64'
|
||||
- &platforms_server 'linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,linux/riscv64'
|
||||
- &platforms_release 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/386,linux/amd64,linux/ppc64le,linux/riscv64,linux/s390x,freebsd/arm64,freebsd/amd64'
|
||||
- &platforms_server 'linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le,linux/riscv64,freebsd/arm64'
|
||||
- &platforms_preview 'linux/amd64'
|
||||
- &platforms_alpine 'linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/amd64,linux/ppc64le'
|
||||
- &build_args 'CI_COMMIT_SHA=${CI_COMMIT_SHA},CI_COMMIT_BRANCH=${CI_COMMIT_BRANCH},CI_COMMIT_TAG=${CI_COMMIT_TAG}'
|
||||
|
||||
@@ -298,6 +298,10 @@ release-agent: ## Create agent binaries for release
|
||||
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/windows_amd64/woodpecker-agent.exe go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/darwin_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/darwin_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/freebsd_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
GOOS=freebsd GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/freebsd_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
GOOS=openbsd GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/openbsd_amd64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
GOOS=openbsd GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -tags 'grpcnotrace $(TAGS)' -o ${DIST_DIR}/agent/openbsd_arm64/woodpecker-agent go.woodpecker-ci.org/woodpecker/v3/cmd/agent
|
||||
# tar binary files
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_linux_amd64.tar.gz -C ${DIST_DIR}/agent/linux_amd64 woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_linux_arm64.tar.gz -C ${DIST_DIR}/agent/linux_arm64 woodpecker-agent
|
||||
@@ -305,6 +309,10 @@ release-agent: ## Create agent binaries for release
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_linux_arm.tar.gz -C ${DIST_DIR}/agent/linux_arm woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_darwin_amd64.tar.gz -C ${DIST_DIR}/agent/darwin_amd64 woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_darwin_arm64.tar.gz -C ${DIST_DIR}/agent/darwin_arm64 woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_freebsd_amd64.tar.gz -C ${DIST_DIR}/agent/freebsd_amd64 woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_freebsd_arm64.tar.gz -C ${DIST_DIR}/agent/freebsd_arm64 woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_openbsd_amd64.tar.gz -C ${DIST_DIR}/agent/openbsd_amd64 woodpecker-agent
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-agent_openbsd_arm64.tar.gz -C ${DIST_DIR}/agent/openbsd_arm64 woodpecker-agent
|
||||
# zip binary files
|
||||
rm -f ${DIST_DIR}/woodpecker-agent_windows_amd64.zip
|
||||
zip -j ${DIST_DIR}/woodpecker-agent_windows_amd64.zip ${DIST_DIR}/agent/windows_amd64/woodpecker-agent.exe
|
||||
@@ -318,6 +326,10 @@ release-cli: ## Create cli binaries for release
|
||||
GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/windows_amd64/woodpecker-cli.exe go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/darwin_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/darwin_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
GOOS=freebsd GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/freebsd_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
GOOS=freebsd GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/freebsd_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
GOOS=openbsd GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/openbsd_amd64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
GOOS=openbsd GOARCH=arm64 CGO_ENABLED=0 go build -ldflags '${LDFLAGS}' -o ${DIST_DIR}/cli/openbsd_arm64/woodpecker-cli go.woodpecker-ci.org/woodpecker/v3/cmd/cli
|
||||
# tar binary files
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_linux_amd64.tar.gz -C ${DIST_DIR}/cli/linux_amd64 woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_linux_arm64.tar.gz -C ${DIST_DIR}/cli/linux_arm64 woodpecker-cli
|
||||
@@ -325,6 +337,10 @@ release-cli: ## Create cli binaries for release
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_linux_arm.tar.gz -C ${DIST_DIR}/cli/linux_arm woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_darwin_amd64.tar.gz -C ${DIST_DIR}/cli/darwin_amd64 woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_darwin_arm64.tar.gz -C ${DIST_DIR}/cli/darwin_arm64 woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_freebsd_amd64.tar.gz -C ${DIST_DIR}/cli/freebsd_amd64 woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_freebsd_arm64.tar.gz -C ${DIST_DIR}/cli/freebsd_arm64 woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_openbsd_amd64.tar.gz -C ${DIST_DIR}/cli/openbsd_amd64 woodpecker-cli
|
||||
tar -cvzf ${DIST_DIR}/woodpecker-cli_openbsd_arm64.tar.gz -C ${DIST_DIR}/cli/openbsd_arm64 woodpecker-cli
|
||||
# zip binary files
|
||||
rm -f ${DIST_DIR}/woodpecker-cli_windows_amd64.zip
|
||||
zip -j ${DIST_DIR}/woodpecker-cli_windows_amd64.zip ${DIST_DIR}/cli/windows_amd64/woodpecker-cli.exe
|
||||
|
||||
@@ -41,3 +41,5 @@ Images are pushed to DockerHub and Quay.
|
||||
- woodpecker-agent ([DockerHub](https://hub.docker.com/r/woodpeckerci/woodpecker-agent) or [Quay](https://quay.io/repository/woodpeckerci/woodpecker-agent))
|
||||
- woodpecker-cli ([DockerHub](https://hub.docker.com/r/woodpeckerci/woodpecker-cli) or [Quay](https://quay.io/repository/woodpeckerci/woodpecker-cli))
|
||||
- woodpecker-autoscaler ([DockerHub](https://hub.docker.com/r/woodpeckerci/autoscaler))
|
||||
|
||||
For the full list of operating systems and architectures each component is built for, along with which execution backends are supported on each platform, see [Supported platforms](./05-installation/05-supported-platforms.md).
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
# Supported platforms
|
||||
|
||||
Woodpecker is shipped as container images and as pre-built binaries on the [GitHub releases](https://github.com/woodpecker-ci/woodpecker/releases/latest) page. Not every component is available for every platform: the server and the Docker/Kubernetes backends are Linux-centric, while the agent and CLI run on a wider set of operating systems via the Local backend.
|
||||
|
||||
## Components
|
||||
|
||||
| Component | Purpose |
|
||||
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `woodpecker-server` | Web UI, API, webhook receiver, pipeline scheduler. |
|
||||
| `woodpecker-agent` | Executes pipeline workflows via a backend ([Docker](../10-configuration/11-backends/10-docker.md), [Kubernetes](../10-configuration/11-backends/20-kubernetes.md), [Local](../10-configuration/11-backends/30-local.md)). |
|
||||
| `woodpecker-cli` | Command-line utility for interacting with the server. |
|
||||
| `plugin-git` | Default clone plugin, invoked automatically by the agent at the start of every workflow. Distributed as a container image; binaries are also published for use with the Local backend. |
|
||||
|
||||
## Component / platform matrix
|
||||
|
||||
The table lists what is officially built and published by the Woodpecker project. "Image" means a container image is pushed to DockerHub and Quay. "Binary" means a pre-built tarball or `.exe` is attached to the GitHub release.
|
||||
|
||||
| OS / Architecture | server | agent | cli | plugin-git |
|
||||
| ------------------------------------ | -------------- | -------------- | -------------- | -------------- |
|
||||
| linux / amd64 | Image + Binary | Image + Binary | Image + Binary | Image + Binary |
|
||||
| linux / arm64 (arm64/v8) | Image + Binary | Image + Binary | Image + Binary | Image + Binary |
|
||||
| linux / arm/v7 | Image | Image + Binary | Image + Binary | Image + Binary |
|
||||
| linux / arm/v6 | Image | Image | Image | Image |
|
||||
| linux / 386 | Image | Image | Image | Image |
|
||||
| linux / ppc64le | Image | Image | Image | Image |
|
||||
| linux / riscv64 | Image + Binary | Image + Binary | Image + Binary | Image |
|
||||
| linux / s390x | Image | Image | Image | Image |
|
||||
| windows / amd64 | Binary | Binary | Binary | Binary |
|
||||
| windows / arm64 | – | – | – | Binary |
|
||||
| darwin / amd64 (macOS Intel) | – | Binary | Binary | Binary |
|
||||
| darwin / arm64 (macOS Apple Silicon) | – | Binary | Binary | Binary |
|
||||
| freebsd / amd64 | Image + Binary | Image + Binary | Image + Binary | Binary |
|
||||
| freebsd / arm64 | – | Image + Binary | Image + Binary | Binary |
|
||||
| openbsd / amd64 | – | Binary | Binary | Binary |
|
||||
| openbsd / arm64 | – | Binary | Binary | Binary |
|
||||
|
||||
DEB and RPM packages are produced for `linux/amd64` and `linux/arm64`; see the [Distribution packages](./30-packages.md) page for download links and systemd unit examples.
|
||||
|
||||
## Backend support per platform
|
||||
|
||||
The agent can run on any platform listed above, but the available execution backends depend on the host operating system.
|
||||
|
||||
| Backend | Linux | Windows | macOS | FreeBSD | OpenBSD |
|
||||
| -------------------------------------------------------------- | --------- | ---------------------- | --------- | ---------------------- | --------- |
|
||||
| [Docker](../10-configuration/11-backends/10-docker.md) | Supported | Supported[^win-docker] | – | [WIP][^freebsd-docker] | – |
|
||||
| [Kubernetes](../10-configuration/11-backends/20-kubernetes.md) | Supported | – | – | – | – |
|
||||
| [Local](../10-configuration/11-backends/30-local.md) | Supported | Supported | Supported | Supported | Supported |
|
||||
|
||||
[^win-docker]: Works through WSL2 with Docker Desktop, and with native Windows containers.
|
||||
|
||||
[^freebsd-docker]: FreeBSD Docker backend support is a work in progress; see [woodpecker-ci/woodpecker#6655](https://github.com/woodpecker-ci/woodpecker/issues/6655).
|
||||
|
||||
Notes:
|
||||
|
||||
- The **Docker** and **Kubernetes** backends require a Linux host on the agent because they rely on Linux container runtimes. On Windows, Docker is available via WSL2 or Windows containers (see footnote above). Running the agent on macOS or OpenBSD restricts you to the Local backend.
|
||||
- The **Local** backend runs pipeline commands directly on the agent host with no isolation. It is the only backend available on macOS and OpenBSD, and is intended for trusted, private setups only. See the [Local backend documentation](../10-configuration/11-backends/30-local.md) for the full security notes.
|
||||
- `plugin-git` is invoked as a container by default. On hosts where the Docker and Kubernetes backends are unavailable, configure the Local backend to use the [`plugin-git` binary](https://github.com/woodpecker-ci/plugin-git/releases/latest) instead, or disable the clone step and clone manually in the pipeline.
|
||||
@@ -1,10 +1,16 @@
|
||||
# Distribution packages
|
||||
|
||||
:::tip
|
||||
For a full list of operating systems and architectures that Woodpecker is built for, including which components are available on each, see [Supported platforms](./05-supported-platforms.md).
|
||||
:::
|
||||
|
||||
## Official packages
|
||||
|
||||
- DEB
|
||||
- RPM
|
||||
|
||||
DEB and RPM packages are built for `linux/amd64` and `linux/arm64`. For other architectures, use the binary tarballs or container images linked from the [Supported platforms](./05-supported-platforms.md) page.
|
||||
|
||||
The pre-built packages are available on the [GitHub releases](https://github.com/woodpecker-ci/woodpecker/releases/latest) page. The packages can be installed using the package manager of your distribution.
|
||||
|
||||
```Shell
|
||||
|
||||
@@ -27,6 +27,8 @@ code and execute commands.
|
||||
In order to use this backend, you need to download (or build) the
|
||||
[agent](https://github.com/woodpecker-ci/woodpecker/releases/latest), configure it and run it on the host machine.
|
||||
|
||||
The local backend is supported on Windows, macOS, FreeBSD and OpenBSD; see [Supported platforms](../../05-installation/05-supported-platforms.md) for the full component and backend matrix.
|
||||
|
||||
## Step specific configuration
|
||||
|
||||
### Shell
|
||||
|
||||
Reference in New Issue
Block a user