labels: platform: linux/amd64 depends_on: - test variables: - &scw-secrets - SCW_ACCESS_KEY - SCW_SECRET_KEY - SCW_DEFAULT_ORGANIZATION_ID - &setup-hex "mix local.hex --force && mix local.rebar --force" - &on-release when: event: - push - tag branch: - develop - stable - &on-stable when: event: - push - tag branch: - stable - &on-pr-open when: event: - pull_request - &tag-build "export BUILD_TAG=$${CI_COMMIT_TAG:-\"$CI_COMMIT_BRANCH\"} && export PLEROMA_BUILD_BRANCH=$BUILD_TAG" - &clean "(rm -rf release || true) && (rm -rf _build || true) && (rm -rf /root/.mix)" - &mix-clean "mix deps.clean --all && mix clean" steps: # Canonical amd64 debian-bookworm: image: hexpm/elixir:1.15.4-erlang-26.0.2-debian-bookworm-20230612 <<: *on-release environment: MIX_ENV: prod DEBIAN_FRONTEND: noninteractive commands: - apt-get update && apt-get install -y cmake libmagic-dev rclone zip imagemagick libmagic-dev git build-essential g++ wget - *clean - echo "import Config" > config/prod.secret.exs - *setup-hex - *tag-build - mix deps.get --only prod - mix release --path release - zip akkoma-amd64.zip -r release release-debian-bookworm: image: akkoma/releaser <<: *on-release secrets: *scw-secrets commands: - export SOURCE=akkoma-amd64.zip # AMD64 - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64.zip - /bin/sh /entrypoint.sh # Ubuntu jammy (currently compatible) - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64-ubuntu-jammy.zip - /bin/sh /entrypoint.sh debian-bullseye: image: hexpm/elixir:1.15.4-erlang-26.0.2-debian-bullseye-20230612 <<: *on-release environment: MIX_ENV: prod DEBIAN_FRONTEND: noninteractive commands: - apt-get update && apt-get install -y cmake libmagic-dev rclone zip imagemagick libmagic-dev git build-essential g++ wget - *clean - echo "import Config" > config/prod.secret.exs - *setup-hex - *tag-build - mix deps.get --only prod - mix release --path release - zip akkoma-amd64-debian-bullseye.zip -r release release-debian-bullseye: image: akkoma/releaser <<: *on-release secrets: *scw-secrets commands: - export SOURCE=akkoma-amd64-debian-bullseye.zip # AMD64 - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64-debian-bullseye.zip - /bin/sh /entrypoint.sh # Canonical amd64-musl musl: image: hexpm/elixir:1.15.4-erlang-26.0.2-alpine-3.18.2 <<: *on-stable environment: MIX_ENV: prod commands: - apk add git gcc g++ musl-dev make cmake file-dev rclone wget zip imagemagick - *clean - *setup-hex - *mix-clean - *tag-build - mix deps.get --only prod - mix release --path release - zip akkoma-amd64-musl.zip -r release release-musl: image: akkoma/releaser <<: *on-stable secrets: *scw-secrets commands: - export SOURCE=akkoma-amd64-musl.zip - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64-musl.zip - /bin/sh /entrypoint.sh