matrix:
  docker_prefix:
  - ""
  - arm64v8/
  - arm32v7/
  tag:
  - amd64
  - arm64
  - arm

  include:
  - tag: amd64
    docker_prefix: ""

pipeline:
  glibc:
    when:
      event:
        - push
        - tag
      branch:
        - develop
        - stable
        - refs/tags/v*
        - refs/tags/stable-*
    secrets:
    - SCW_ACCESS_KEY
    - SCW_SECRET_KEY
    - SCW_DEFAULT_ORGANIZATION_ID
    image: ${docker_prefix}elixir:1.13
    environment:
      MIX_ENV: prod
    commands:
      - apt-get update && apt-get install -y cmake libmagic-dev rclone zip imagemagick libmagic-dev
      - wget https://github.com/scaleway/scaleway-cli/releases/download/v2.5.1/scaleway-cli_2.5.1_linux_amd64
      - mv scaleway-cli_2.5.1_linux_amd64 scaleway-cli
      - chmod +x scaleway-cli
      - ./scaleway-cli object config install type=rclone
      - echo "import Mix.Config" > config/prod.secret.exs
      - mix local.hex --force
      - mix local.rebar --force
      - export BUILD_TAG=$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}
      - export PLEROMA_BUILD_BRANCH=$BUILD_TAG
      - mix deps.clean --all
      - mix deps.get --only prod
      - mkdir release
      - mix release --path release
      - zip akkoma-${tag}.zip -r release
      - rclone copyto akkoma-${tag}.zip scaleway:akkoma-updates/$BUILD_TAG/akkoma-${tag}.zip

  musl:
    when:
      event:
        - push
        - tag
      branch:
        - develop
        - stable
        - refs/tags/v*
        - refs/tags/stable-*
    secrets:
    - SCW_ACCESS_KEY
    - SCW_SECRET_KEY
    - SCW_DEFAULT_ORGANIZATION_ID
    image: ${docker_prefix}elixir:1.13-alpine
    environment:
      MIX_ENV: prod
    commands:
      - apk add git gcc g++ musl-dev make cmake file-dev rclone wget zip imagemagick
      - rm -rf release || true
      - rm -rf _build || true
      - rm -rf /root/.mix
      - rm scaleway-cli || true
      - wget https://github.com/scaleway/scaleway-cli/releases/download/v2.5.1/scaleway-cli_2.5.1_linux_amd64
      - mv scaleway-cli_2.5.1_linux_amd64 scaleway-cli
      - chmod +x scaleway-cli
      - ./scaleway-cli object config install type=rclone

      - mix local.hex --force
      - mix local.rebar --force
      - export BUILD_TAG=$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}
      - export PLEROMA_BUILD_BRANCH=$BUILD_TAG
      - mix deps.clean --all 
      - mix deps.get --only prod
      - mix release --path release
      - zip akkoma-${tag}.zip -r release
      - rclone copyto akkoma-${tag}.zip scaleway:akkoma-updates/$BUILD_TAG/akkoma-${tag}-musl.zip

  musl1.1:
    when:
      event:
        - push
        - tag
      branch:
        - develop
        - stable
        - refs/tags/v*
        - refs/tags/stable-*
    secrets:
    - SCW_ACCESS_KEY
    - SCW_SECRET_KEY
    - SCW_DEFAULT_ORGANIZATION_ID
    image: voidlinux/voidlinux-musl
    environment:
      MIX_ENV: prod
    commands:
      - xbps-install -Suy || xbps-install -uy xbps
      - xbps-install -Suy
      - xbps-install -y git gcc musl-devel make cmake file-devel rclone wget zip libmagic elixir
      - rm -rf release || true
      - rm -rf _build || true
      - rm -rf /root/.mix
      - rm scaleway-cli || true
      - wget https://github.com/scaleway/scaleway-cli/releases/download/v2.5.1/scaleway-cli_2.5.1_linux_amd64
      - mv scaleway-cli_2.5.1_linux_amd64 scaleway-cli
      - chmod +x scaleway-cli
      - ./scaleway-cli object config install type=rclone

      - mix local.hex --force
      - mix local.rebar --force
      - export BUILD_TAG=$${CI_COMMIT_TAG:-"$CI_COMMIT_BRANCH"}
      - export PLEROMA_BUILD_BRANCH=$BUILD_TAG
      - mix deps.clean --all
      - mix deps.get --only prod
      - mix release --path release
      - zip akkoma-${tag}.zip -r release
      - rclone copyto akkoma-${tag}.zip scaleway:akkoma-updates/$BUILD_TAG/akkoma-${tag}-musl11.zip