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-point-release when: event: - push branch: - develop - 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" pipeline: # Canonical amd64 ubuntu22: image: hexpm/elixir:1.14.3-erlang-25.2.2-ubuntu-jammy-20221130 <<: *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-ubuntu-jammy.zip -r release release-ubuntu22: image: akkoma/releaser <<: *on-release secrets: *scw-secrets commands: - export SOURCE=akkoma-ubuntu-jammy.zip - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-ubuntu-jammy.zip - /bin/sh /entrypoint.sh - 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.14.3-erlang-25.2.2-debian-bullseye-20230109 <<: *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 gcc make g++ wget - *clean - echo "import Config" > config/prod.secret.exs - *setup-hex - *tag-build - *mix-clean - mix deps.get --only prod - mix release --path release - zip akkoma-amd64.zip -r release release-debian: image: akkoma/releaser <<: *on-release secrets: *scw-secrets commands: - export SOURCE=akkoma-amd64.zip - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64.zip - /bin/sh /entrypoint.sh - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-debian-stable.zip - /bin/sh /entrypoint.sh # Canonical amd64-musl musl: image: hexpm/elixir:1.14.3-erlang-25.2.2-alpine-3.18.0 <<: *on-point-release 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-point-release 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