Documentation updates for stable release (#73)
[akkoma] / .woodpecker / .release.yml
index 253dd80713b33cc65af7cfadebde6cd9571d22dd..6a972acbbf8b1076e2cbdd6a034098198e5dc5b3 100644 (file)
-depends_on:
-- test
+matrix:
+  docker_prefix:
+  - ""
+  - arm64v8/
+  - arm32v7/
+  tag:
+  - amd64
+  - arm64
+  - arm
 
-pipeline:
+  include:
+  - tag: amd64
+    docker_prefix: ""
 
-  amd64-glibc:
+pipeline:
+  glibc:
     when:
       event:
-        - tag
-
-    group: release
-    image: elixir:1.13
+        - push
+      branch:
+        - develop
+        - 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
+      - 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 deps.get --only prod
-      - mkdir release
+      - mix local.hex --force
+      - mix local.rebar --force
       - export PLEROMA_BUILD_BRANCH=$CI_COMMIT_BRANCH
-      - mix release --path release
-      - zip akkoma-$CI_COMMIT_BRANCH-${platform}.zip -r release
-      - rclone copy akkoma-$CI_COMMIT_BRANCH-${platform}.zip scaleway:akkoma-updates/
-
-  amd64-musl:
-    when:
-      event:
-        - tag
-
-    group: release
-    image: elixir:1.13-alpine
-    environment:
-      MIX_ENV: prod
-    commands:
-      - apk add git gcc g++ musl-dev make cmake file-dev rclone wget
-      - 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 deps.clean --all
       - mix deps.get --only prod
       - mkdir release
-      - export PLEROMA_BUILD_BRANCH=${CI_COMMIT_BRANCH}
       - mix release --path release
-      - zip akkoma-$CI_COMMIT_BRANCH-${platform}.zip -r release
-      - rclone copy akkoma-$CI_COMMIT_BRANCH-${platform}.zip scaleway:akkoma-updates/
+      - zip akkoma-${tag}.zip -r release
+      - rclone copyto akkoma-${tag}.zip scaleway:akkoma-updates/$CI_COMMIT_BRANCH/akkoma-${tag}.zip
 
-  arm64-glibc:
+  musl:
     when:
       event:
-        - tag
-
+        - push
+      branch:
+        - develop
+        - stable
+    secrets:
+    - SCW_ACCESS_KEY
+    - SCW_SECRET_KEY
+    - SCW_DEFAULT_ORGANIZATION_ID
     group: release
-    image: arm64v8/elixir:1.13
+    image: ${docker_prefix}elixir:1.13-alpine
     environment:
       MIX_ENV: prod
     commands:
-      - apt-get update && apt-get install -y cmake libmagic-dev rclone
+      - 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
-      - echo "import Mix.Config" > config/prod.secret.exs
-      - mix deps.get --only prod
-      - mkdir release
+
+      - mix local.hex --force
+      - mix local.rebar --force
       - export PLEROMA_BUILD_BRANCH=$CI_COMMIT_BRANCH
+      - mix deps.clean --all 
+      - mix deps.get --only prod
       - mix release --path release
-      - zip akkoma-$CI_COMMIT_BRANCH-${platform}.zip -r release
-      - rclone copy akkoma-$CI_COMMIT_BRANCH-${platform}.zip scaleway:akkoma-updates/
+      - zip akkoma-${tag}.zip -r release
+      - rclone copyto akkoma-${tag}.zip scaleway:akkoma-updates/$CI_COMMIT_BRANCH/akkoma-${tag}-musl.zip
 
-  arm64-musl:
+  musl1.1:
     when:
       event:
-        - tag
-
+        - push
+      branch:
+        - develop
+        - stable
+    secrets:
+    - SCW_ACCESS_KEY
+    - SCW_SECRET_KEY
+    - SCW_DEFAULT_ORGANIZATION_ID
     group: release
-    image: arm64v8/elixir:1.13-alpine
+    image: voidlinux/voidlinux-musl
     environment:
       MIX_ENV: prod
     commands:
-      - apk add git gcc g++ musl-dev make cmake file-dev rclone wget
+      - 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
-      - echo "import Mix.Config" > config/prod.secret.exs
+
+      - mix local.hex --force
+      - mix local.rebar --force
+      - export PLEROMA_BUILD_BRANCH=$CI_COMMIT_BRANCH
+      - mix deps.clean --all
       - mix deps.get --only prod
-      - mkdir release
-      - export PLEROMA_BUILD_BRANCH=${CI_COMMIT_BRANCH}
       - mix release --path release
-      - zip akkoma-$CI_COMMIT_BRANCH-${platform}.zip -r release
-      - rclone copy akkoma-$CI_COMMIT_BRANCH-${platform}.zip scaleway:akkoma-updates/
+      - zip akkoma-${tag}.zip -r release
+      - rclone copyto akkoma-${tag}.zip scaleway:akkoma-updates/$CI_COMMIT_BRANCH/akkoma-${tag}-musl11.zip