forked from AkkomaGang/akkoma
Merge branch 'feature/ci-release-build' into 'develop'
CI: build otp releases for master and develop branches See merge request pleroma/pleroma!1279
This commit is contained in:
commit
00cc4880ce
1 changed files with 102 additions and 0 deletions
102
.gitlab-ci.yml
102
.gitlab-ci.yml
|
@ -16,6 +16,7 @@ stages:
|
||||||
- build
|
- build
|
||||||
- test
|
- test
|
||||||
- deploy
|
- deploy
|
||||||
|
- release
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- mix local.hex --force
|
- mix local.hex --force
|
||||||
|
@ -42,6 +43,7 @@ docs-build:
|
||||||
paths:
|
paths:
|
||||||
- priv/static/doc
|
- priv/static/doc
|
||||||
|
|
||||||
|
|
||||||
unit-testing:
|
unit-testing:
|
||||||
stage: test
|
stage: test
|
||||||
services:
|
services:
|
||||||
|
@ -140,3 +142,103 @@ stop_review_app:
|
||||||
- ssh-keyscan -H "pleroma.online" >> ~/.ssh/known_hosts
|
- ssh-keyscan -H "pleroma.online" >> ~/.ssh/known_hosts
|
||||||
- ssh -t dokku@pleroma.online -- --force apps:destroy "$CI_ENVIRONMENT_SLUG"
|
- ssh -t dokku@pleroma.online -- --force apps:destroy "$CI_ENVIRONMENT_SLUG"
|
||||||
- ssh -t dokku@pleroma.online -- --force postgres:destroy $(echo $CI_ENVIRONMENT_SLUG | sed -e 's/-/_/g')_db
|
- ssh -t dokku@pleroma.online -- --force postgres:destroy $(echo $CI_ENVIRONMENT_SLUG | sed -e 's/-/_/g')_db
|
||||||
|
|
||||||
|
amd64:
|
||||||
|
stage: release
|
||||||
|
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||||
|
image: rinpatch/elixir:1.9.0-rc.0
|
||||||
|
only: &release-only
|
||||||
|
- master@pleroma/pleroma
|
||||||
|
- develop@pleroma/pleroma
|
||||||
|
artifacts: &release-artifacts
|
||||||
|
name: "pleroma-$CI_COMMIT_REF_NAME-$CI_COMMIT_SHORT_SHA-$CI_JOB_NAME"
|
||||||
|
paths:
|
||||||
|
- release/*
|
||||||
|
# Ideally it would be never for master branch and with the next commit for develop,
|
||||||
|
# but Gitlab does not support neither `only` for artifacts
|
||||||
|
# nor setting it to never from .gitlab-ci.yml
|
||||||
|
# nor expiring with the next commit
|
||||||
|
expire_in: 42 yrs
|
||||||
|
|
||||||
|
cache: &release-cache
|
||||||
|
key: $CI_COMMIT_REF_NAME-$CI_JOB_NAME
|
||||||
|
paths:
|
||||||
|
- deps
|
||||||
|
variables: &release-variables
|
||||||
|
MIX_ENV: prod
|
||||||
|
before_script: &before-release
|
||||||
|
- echo "import Mix.Config" > config/prod.secret.exs
|
||||||
|
- mix local.hex --force
|
||||||
|
- mix local.rebar --force
|
||||||
|
script: &release
|
||||||
|
- mix deps.get --only prod
|
||||||
|
- mkdir release
|
||||||
|
- mix release --path release
|
||||||
|
|
||||||
|
|
||||||
|
amd64-musl:
|
||||||
|
stage: release
|
||||||
|
artifacts: *release-artifacts
|
||||||
|
only: *release-only
|
||||||
|
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||||
|
image: rinpatch/elixir:1.9.0-rc.0-alpine
|
||||||
|
cache: *release-cache
|
||||||
|
variables: *release-variables
|
||||||
|
before_script: &before-release-musl
|
||||||
|
- apk add git gcc g++ musl-dev make
|
||||||
|
- echo "import Mix.Config" > config/prod.secret.exs
|
||||||
|
- mix local.hex --force
|
||||||
|
- mix local.rebar --force
|
||||||
|
script: *release
|
||||||
|
|
||||||
|
arm:
|
||||||
|
stage: release
|
||||||
|
artifacts: *release-artifacts
|
||||||
|
only: *release-only
|
||||||
|
tags:
|
||||||
|
- arm32
|
||||||
|
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||||
|
image: rinpatch/elixir:1.9.0-rc.0-arm
|
||||||
|
cache: *release-cache
|
||||||
|
variables: *release-variables
|
||||||
|
before_script: *before-release
|
||||||
|
script: *release
|
||||||
|
|
||||||
|
arm-musl:
|
||||||
|
stage: release
|
||||||
|
artifacts: *release-artifacts
|
||||||
|
only: *release-only
|
||||||
|
tags:
|
||||||
|
- arm32
|
||||||
|
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||||
|
image: rinpatch/elixir:1.9.0-rc.0-arm-alpine
|
||||||
|
cache: *release-cache
|
||||||
|
variables: *release-variables
|
||||||
|
before_script: *before-release-musl
|
||||||
|
script: *release
|
||||||
|
|
||||||
|
arm64:
|
||||||
|
stage: release
|
||||||
|
artifacts: *release-artifacts
|
||||||
|
only: *release-only
|
||||||
|
tags:
|
||||||
|
- arm
|
||||||
|
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||||
|
image: rinpatch/elixir:1.9.0-rc.0-arm64
|
||||||
|
cache: *release-cache
|
||||||
|
variables: *release-variables
|
||||||
|
before_script: *before-release
|
||||||
|
script: *release
|
||||||
|
|
||||||
|
arm64-musl:
|
||||||
|
stage: release
|
||||||
|
artifacts: *release-artifacts
|
||||||
|
only: *release-only
|
||||||
|
tags:
|
||||||
|
- arm
|
||||||
|
# TODO: Replace with upstream image when 1.9.0 comes out
|
||||||
|
image: rinpatch/elixir:1.9.0-rc.0-arm64-alpine
|
||||||
|
cache: *release-cache
|
||||||
|
variables: *release-variables
|
||||||
|
before_script: *before-release-musl
|
||||||
|
script: *release
|
||||||
|
|
Loading…
Reference in a new issue