musl and glibc builds need to be split due to workspace polution. Workflow's steps share the same workspace, so two separate build steps can't be in the same workflow since they share the buld artifacts, deps.
87 lines
3.2 KiB
YAML
87 lines
3.2 KiB
YAML
when:
|
|
- event: push
|
|
branch: ${CI_REPO_DEFAULT_BRANCH}
|
|
path: [ "*.ex", "*.eex", "*.exs", "mix.lock", ".woodpecker/**" ]
|
|
|
|
matrix:
|
|
platform:
|
|
- linux/amd64
|
|
- linux/arm64
|
|
|
|
# This is needed for the when clauses below.
|
|
# When the platform clause is fixed, this might not be needed anymore
|
|
labels:
|
|
platform: ${platform}
|
|
|
|
steps:
|
|
otp-develop-amd64:
|
|
image: docker.io/hexpm/elixir-amd64:1.17.3-erlang-27.3.4.2-ubuntu-noble-20250716
|
|
# when:
|
|
# - platform: linux/amd64
|
|
# does not work even though it should according to docs
|
|
# https://github.com/woodpecker-ci/woodpecker/discussions/5367#discussioncomment-13901342
|
|
when:
|
|
- evaluate: platform == "linux/amd64"
|
|
environment:
|
|
MIX_ENV: prod
|
|
VIX_COMPILATION_MODE: PLATFORM_PROVIDED_LIBVIPS
|
|
DEBIAN_FRONTEND: noninteractive
|
|
commands:
|
|
- apt-get update && apt-get install -y cmake libmagic-dev libvips-dev erlang-dev git build-essential zip
|
|
- echo "import Config" > config/prod.secret.exs
|
|
- mix local.hex --force
|
|
- mix local.rebar --force
|
|
- mix deps.get --only prod
|
|
- mkdir release
|
|
- export PLEROMA_BUILD_BRANCH=${CI_COMMIT_BRANCH}
|
|
- mix release --path release
|
|
- zip -9rq pleroma-${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-amd64.zip release
|
|
|
|
upload-artifacts-amd64:
|
|
image: docker.io/woodpeckercommunity/plugin-gitea-package:0.5.0
|
|
when:
|
|
- evaluate: platform == "linux/amd64"
|
|
settings:
|
|
user:
|
|
from_secret: pleroma-ci-user
|
|
password:
|
|
from_secret: pleroma-ci-password
|
|
owner: 'pleroma'
|
|
package_name: pleroma-otp-${CI_REPO_DEFAULT_BRANCH}-amd64
|
|
package_version: ${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-amd64
|
|
file_source: ./pleroma-${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-amd64.zip
|
|
file_name: ./pleroma-${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-amd64.zip
|
|
|
|
otp-develop-arm64:
|
|
image: docker.io/hexpm/elixir-arm64:1.17.3-erlang-27.3.4.2-ubuntu-noble-20250716
|
|
when:
|
|
- evaluate: platform == "linux/arm64"
|
|
environment:
|
|
MIX_ENV: prod
|
|
VIX_COMPILATION_MODE: PLATFORM_PROVIDED_LIBVIPS
|
|
DEBIAN_FRONTEND: noninteractive
|
|
commands:
|
|
- apt-get update && apt-get install -y cmake libmagic-dev libvips-dev erlang-dev git build-essential zip
|
|
- echo "import Config" > config/prod.secret.exs
|
|
- mix local.hex --force
|
|
- mix local.rebar --force
|
|
- mix deps.get --only prod
|
|
- mkdir release
|
|
- export PLEROMA_BUILD_BRANCH=${CI_COMMIT_BRANCH}
|
|
- mix release --path release
|
|
- zip -9rq pleroma-${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-arm64.zip release
|
|
|
|
upload-artifacts-arm64:
|
|
image: docker.io/woodpeckercommunity/plugin-gitea-package:0.5.0
|
|
when:
|
|
- evaluate: platform == "linux/arm64"
|
|
settings:
|
|
user:
|
|
from_secret: pleroma-ci-user
|
|
password:
|
|
from_secret: pleroma-ci-password
|
|
owner: 'pleroma'
|
|
package_name: pleroma-otp-${CI_REPO_DEFAULT_BRANCH}-arm64
|
|
package_version: ${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-arm64
|
|
file_source: ./pleroma-${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-arm64.zip
|
|
file_name: ./pleroma-${CI_REPO_DEFAULT_BRANCH}-${CI_COMMIT_SHA}-arm64.zip
|