when: - event: push branch: ${CI_REPO_DEFAULT_BRANCH} path: [ "**/*.ex", "**/*.eex", "**/*.exs", "mix.lock", ".woodpecker/**", "Dockerfile" ] - event: tag - event: manual branch: ${CI_REPO_DEFAULT_BRANCH} - event: manual branch: stable matrix: platform: - linux/amd64 - linux/arm64 - linux/arm # This is needed for the when clauses below. labels: platform: ${platform} memory: 'high' variables: docker_variables: &docker_variables repo: pleroma/pleroma registry: git.pleroma.social username: from_secret: pleroma-ci-user password: from_secret: pleroma-ci-password armv7_docker_variables: &armv7_docker_variables <<: *docker_variables build_args: - ELIXIR_IMG=docker.io/arm32v7/elixir - ELIXIR_TAG=1.17.3-otp-26-alpine - ALPINE_IMG=docker.io/arm32v7/alpine - ALPINE_VER=3.20 extra_opts: --custom-platform=linux/arm/v7 kaniko_image: &kaniko_image docker.io/woodpeckerci/plugin-kaniko:2.3.2 steps: docker-develop-amd64: image: *kaniko_image when: - evaluate: 'platform == "linux/amd64" && CI_COMMIT_BRANCH == "${CI_REPO_DEFAULT_BRANCH}"' settings: <<: *docker_variables tags: - latest-amd64 - develop-amd64 - ${CI_COMMIT_SHA:0:8}-amd64 docker-develop-arm64: image: *kaniko_image when: - evaluate: 'platform == "linux/arm64" && CI_COMMIT_BRANCH == "${CI_REPO_DEFAULT_BRANCH}"' settings: <<: *docker_variables tags: - latest-arm64 - develop-arm64 - ${CI_COMMIT_SHA:0:8}-arm64 docker-develop-armv7: image: *kaniko_image when: - evaluate: 'platform == "linux/arm" && CI_COMMIT_BRANCH == "${CI_REPO_DEFAULT_BRANCH}"' settings: <<: *armv7_docker_variables tags: - latest-armv7 - develop-armv7 - ${CI_COMMIT_SHA:0:8}-armv7 docker-stable-amd64: image: *kaniko_image when: - evaluate: 'platform == "linux/amd64" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG == ""' settings: <<: *docker_variables tags: &amd64_tags - latest-amd64 - stable-amd64 - ${CI_COMMIT_SHA:0:8}-amd64 # FE workflow runs only on linux/amd64 docker-stable-e2e-amd64: image: *kaniko_image when: - evaluate: 'platform == "linux/amd64" && CI_PIPELINE_EVENT == "tag"' - evaluate: 'platform == "linux/amd64" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable"' settings: <<: *docker_variables dockerfile: Dockerfile-e2e tags: - stable-e2e docker-stable-tag-amd64: image: *kaniko_image when: - evaluate: 'platform == "linux/amd64" && CI_PIPELINE_EVENT == "tag"' - evaluate: 'platform == "linux/amd64" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG != ""' settings: <<: *docker_variables tags: - <<: *amd64_tags - ${CI_COMMIT_TAG}-amd64 docker-stable-arm64: image: *kaniko_image when: - evaluate: 'platform == "linux/arm64" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG == ""' settings: <<: *docker_variables tags: &arm64_tags - latest-arm64 - stable-arm64 - ${CI_COMMIT_SHA:0:8}-arm64 docker-stable-tag-arm64: image: *kaniko_image when: - evaluate: 'platform == "linux/arm64" && CI_PIPELINE_EVENT == "tag"' - evaluate: 'platform == "linux/arm64" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG != ""' settings: <<: *docker_variables tags: - <<: *arm64_tags - ${CI_COMMIT_TAG}-arm64 docker-stable-armv7: image: *kaniko_image when: - evaluate: 'platform == "linux/arm" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG == ""' settings: <<: *armv7_docker_variables tags: &armv7_tags - latest-armv7 - stable-armv7 - ${CI_COMMIT_SHA:0:8}-armv7 docker-stable-tag-armv7: image: *kaniko_image when: - evaluate: 'platform == "linux/arm" && CI_PIPELINE_EVENT == "tag"' - evaluate: 'platform == "linux/arm" && CI_PIPELINE_EVENT == "manual" && CI_COMMIT_BRANCH == "stable" && CI_COMMIT_TAG != ""' settings: <<: *armv7_docker_variables tags: - <<: *armv7_tags - ${CI_COMMIT_TAG}-armv7