From e6598ae5c73a22ad722090caf0eeabe479d9f44c Mon Sep 17 00:00:00 2001 From: Lain Soykaf Date: Tue, 21 Jul 2026 21:23:18 +0400 Subject: [PATCH] fix(ci): build mdex native on armv7 --- .woodpecker/docker-armv7.yaml | 5 +++-- Dockerfile | 4 ++++ mix.exs | 1 + mix.lock | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.woodpecker/docker-armv7.yaml b/.woodpecker/docker-armv7.yaml index c921a56f9..87a92f96d 100644 --- a/.woodpecker/docker-armv7.yaml +++ b/.woodpecker/docker-armv7.yaml @@ -24,9 +24,10 @@ variables: <<: *docker_variables build_args: - ELIXIR_IMG=arm32v7/elixir - - ELIXIR_TAG=1.17.3-otp-26-alpine + - ELIXIR_TAG=1.17.3-otp-26-alpine@sha256:1671da02865cadad4cdb655c6670a50f0bfc9ead0a3896bd52c673e685f8ad1c - ALPINE_IMG=arm32v7/alpine - - ALPINE_VER=3.20 + - ALPINE_VER=3.24.1 + - MDEX_NATIVE_BUILD=true extra_opts: --custom-platform=linux/arm/v7 armv7_push_settings: &armv7_push_settings <<: *armv7_build_settings diff --git a/Dockerfile b/Dockerfile index 5fd1cc0a1..dc1078e74 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,12 +8,16 @@ ARG ALPINE_IMG=alpine FROM ${ELIXIR_IMG}:${ELIXIR_TAG} AS build +ARG MDEX_NATIVE_BUILD=false + COPY . . ENV MIX_ENV=prod +ENV MDEX_NATIVE_BUILD=${MDEX_NATIVE_BUILD} ENV VIX_COMPILATION_MODE=PLATFORM_PROVIDED_LIBVIPS RUN apk add git gcc g++ musl-dev make cmake file-dev vips-dev &&\ + case "${MDEX_NATIVE_BUILD}" in true|1) apk add cargo ;; esac &&\ echo "import Config" > config/prod.secret.exs &&\ mix local.hex --force &&\ mix local.rebar --force &&\ diff --git a/mix.exs b/mix.exs index 317e68ac4..4766ffcab 100644 --- a/mix.exs +++ b/mix.exs @@ -156,6 +156,7 @@ defmodule Pleroma.Mixfile do {:ex_aws_s3, "~> 2.5"}, {:sweet_xml, "~> 0.7.5"}, {:mdex, "~> 0.13.2"}, + {:rustler, "~> 0.32", optional: true}, {:bbcode_pleroma, "~> 0.2.0"}, {:nimble_parsec, "~> 1.4", override: true}, {:pleroma_mfm_parser, "~> 0.2.1"}, diff --git a/mix.lock b/mix.lock index be2c802f1..f83c77a29 100644 --- a/mix.lock +++ b/mix.lock @@ -136,7 +136,7 @@ "ranch": {:hex, :ranch, "2.2.0", "25528f82bc8d7c6152c57666ca99ec716510fe0925cb188172f41ce93117b1b0", [:make, :rebar3], [], "hexpm", "fa0b99a1780c80218a4197a59ea8d3bdae32fbff7e88527d7d8a4787eff4f8e7"}, "recon": {:hex, :recon, "2.5.6", "9052588e83bfedfd9b72e1034532aee2a5369d9d9343b61aeb7fbce761010741", [:mix, :rebar3], [], "hexpm", "96c6799792d735cc0f0fd0f86267e9d351e63339cbe03df9d162010cefc26bb0"}, "remote_ip": {:hex, :remote_ip, "1.2.0", "fb078e12a44414f4cef5a75963c33008fe169b806572ccd17257c208a7bc760f", [:mix], [{:combine, "~> 0.10", [hex: :combine, repo: "hexpm", optional: false]}, {:plug, "~> 1.14", [hex: :plug, repo: "hexpm", optional: false]}], "hexpm", "2ff91de19c48149ce19ed230a81d377186e4412552a597d6a5137373e5877cb7"}, - "rustler": {:hex, :rustler, "0.30.0", "cefc49922132b072853fa9b0ca4dc2ffcb452f68fb73b779042b02d545e097fb", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}, {:toml, "~> 0.6", [hex: :toml, repo: "hexpm", optional: false]}], "hexpm", "9ef1abb6a7dda35c47cfc649e6a5a61663af6cf842a55814a554a84607dee389"}, + "rustler": {:hex, :rustler, "0.38.0", "7a8906998ff0d28e3021c0a73264abcda719bda344b2e58307c6805b0f87c9b4", [:mix], [{:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "704c03c1bf66be12b031c5a389347b91c81c5cb819a24b068b0de36fe4a5652a"}, "rustler_precompiled": {:hex, :rustler_precompiled, "0.9.0", "3a052eda09f3d2436364645cc1f13279cf95db310eb0c17b0d8f25484b233aa0", [:mix], [{:rustler, "~> 0.23", [hex: :rustler, repo: "hexpm", optional: true]}], "hexpm", "471d97315bd3bf7b64623418b3693eedd8e47de3d1cb79a0ac8f9da7d770d94c"}, "sleeplocks": {:hex, :sleeplocks, "1.1.3", "96a86460cc33b435c7310dbd27ec82ca2c1f24ae38e34f8edde97f756503441a", [:rebar3], [], "hexpm", "d3b3958552e6eb16f463921e70ae7c767519ef8f5be46d7696cc1ed649421321"}, "ssl_verify_fun": {:hex, :ssl_verify_fun, "1.1.7", "354c321cf377240c7b8716899e182ce4890c5938111a1296add3ec74cf1715df", [:make, :mix, :rebar3], [], "hexpm", "fe4c190e8f37401d30167c8c405eda19469f34577987c76dde613e838bbc67f8"},