- stable
- refs/tags/v*
- refs/tags/stable-*
+ - &on-stable
+ when:
+ event:
+ - push
+ - tag
+ branch:
+ - stable
+ - refs/tags/stable-*
- &on-point-release
when:
event:
- &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"
services:
postgres:
pipeline:
lint:
<<: *on-pr-open
- image: akkoma/ci-base:latest
+ image: akkoma/ci-base:1.14
commands:
- mix local.hex --force
- mix local.rebar --force
- mix format --check-formatted
build:
- image: akkoma/ci-base:latest
+ image: akkoma/ci-base:1.14
<<: *on-pr-open
environment:
MIX_ENV: test
- mix compile
test:
- image: akkoma/ci-base:latest
+ image: akkoma/ci-base:1.14
<<: *on-pr-open
environment:
MIX_ENV: test
# Canonical amd64
ubuntu22:
- image: hexpm/elixir:1.13.4-erlang-25.0.2-ubuntu-jammy-20220428
+ image: hexpm/elixir:1.14.2-erlang-25.1.2-ubuntu-jammy-20220428
<<: *on-release
environment:
MIX_ENV: prod
DEBIAN_FRONTEND: noninteractive
commands:
- - rm config/emoji.txt
- 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
- *tag-build
- mix deps.get --only prod
- mix release --path release
- - zip akkoma-amd64.zip -r release
+ - zip akkoma-ubuntu-jammy.zip -r release
release-ubuntu22:
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
+ - 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
- environment:
- SOURCE: akkoma-amd64.zip
- DEST: scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-amd64.zip
debian-bullseye:
- image: elixir:1.13.4
+ image: hexpm/elixir:1.14.2-erlang-25.1.2-debian-bullseye-20221004
<<: *on-release
environment:
MIX_ENV: prod
- 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
secrets: *scw-secrets
commands:
- export SOURCE=akkoma-amd64.zip
- - export DEST=scaleway:akkoma-updates/$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}/akkoma-debian-bullseye.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: elixir:1.13.4-alpine
- <<: *on-release
+ image: hexpm/elixir:1.14.2-erlang-25.1.2-alpine-3.16.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 deps.clean --all
+ - *mix-clean
- *tag-build
- mix deps.get --only prod
- mix release --path release
release-musl:
image: akkoma/releaser
- <<: *on-release
+ <<: *on-stable
secrets: *scw-secrets
commands:
- export SOURCE=akkoma-amd64-musl.zip