revert: "chore(CI): Always publish docs from main."
All checks were successful
continuous-integration/drone/push Build is passing

This reverts commit e3931e4a38.
This commit is contained in:
James Harton 2023-10-14 11:30:17 +13:00
parent e3931e4a38
commit b69a781f25
Signed by: james
GPG key ID: 90E82DAA13F624F4

View file

@ -3,386 +3,364 @@ type: docker
name: build name: build
steps: steps:
- name: restore ASDF cache - name: restore ASDF cache
image: meltwater/drone-cache image: meltwater/drone-cache
pull: "always" pull: "always"
environment: environment:
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID:
from_secret: ACCESS_KEY_ID from_secret: ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: AWS_SECRET_ACCESS_KEY:
from_secret: SECRET_ACCESS_KEY from_secret: SECRET_ACCESS_KEY
AWS_PLUGIN_PATH_STYLE: true AWS_PLUGIN_PATH_STYLE: true
settings: settings:
restore: true restore: true
endpoint: endpoint:
from_secret: S3_ENDPOINT from_secret: S3_ENDPOINT
bucket: bucket:
from_secret: CACHE_BUCKET from_secret: CACHE_BUCKET
region: us-east-1 region: us-east-1
path-style: true path-style: true
cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}' cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}'
mount: mount:
- .asdf - .asdf
- name: restore build cache - name: restore build cache
image: meltwater/drone-cache image: meltwater/drone-cache
environment: environment:
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID:
from_secret: ACCESS_KEY_ID from_secret: ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: AWS_SECRET_ACCESS_KEY:
from_secret: SECRET_ACCESS_KEY from_secret: SECRET_ACCESS_KEY
AWS_PLUGIN_PATH_STYLE: true AWS_PLUGIN_PATH_STYLE: true
settings: settings:
restore: true restore: true
endpoint: endpoint:
from_secret: S3_ENDPOINT from_secret: S3_ENDPOINT
bucket: bucket:
from_secret: CACHE_BUCKET from_secret: CACHE_BUCKET
region: us-east-1 region: us-east-1
path-style: true path-style: true
cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}' cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}'
mount: mount:
- deps - deps
- _build - _build
- .hex - .hex
- .mix - .mix
- .rebar3 - .rebar3
- name: install dependencies - name: install dependencies
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
pull: "always" pull: "always"
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
ASDF_DIR: /root/.asdf ASDF_DIR: /root/.asdf
depends_on: depends_on:
- restore ASDF cache - restore ASDF cache
- restore build cache - restore build cache
commands: commands:
- asdf_install - asdf_install
- rm -rf .asdf/downloads - rm -rf .asdf/downloads
- . $ASDF_DIR/asdf.sh - . $ASDF_DIR/asdf.sh
- mix local.hex --if-missing --force - mix local.hex --if-missing --force
- mix local.rebar --if-missing --force - mix local.rebar --if-missing --force
- mix deps.get - mix deps.get
- mix deps.compile - mix deps.compile
- mix dialyzer --plt - mix dialyzer --plt
- name: store ASDF cache - name: store ASDF cache
image: meltwater/drone-cache image: meltwater/drone-cache
environment: environment:
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID:
from_secret: ACCESS_KEY_ID from_secret: ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: AWS_SECRET_ACCESS_KEY:
from_secret: SECRET_ACCESS_KEY from_secret: SECRET_ACCESS_KEY
AWS_PLUGIN_PATH_STYLE: true AWS_PLUGIN_PATH_STYLE: true
depends_on: depends_on:
- install dependencies - install dependencies
settings: settings:
rebuild: true rebuild: true
override: false override: false
endpoint: endpoint:
from_secret: S3_ENDPOINT from_secret: S3_ENDPOINT
bucket: bucket:
from_secret: CACHE_BUCKET from_secret: CACHE_BUCKET
region: us-east-1 region: us-east-1
path-style: true path-style: true
cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}' cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}'
mount: mount:
- .asdf - .asdf
- name: store build cache - name: store build cache
image: meltwater/drone-cache image: meltwater/drone-cache
environment: environment:
AWS_ACCESS_KEY_ID: AWS_ACCESS_KEY_ID:
from_secret: ACCESS_KEY_ID from_secret: ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY: AWS_SECRET_ACCESS_KEY:
from_secret: SECRET_ACCESS_KEY from_secret: SECRET_ACCESS_KEY
AWS_PLUGIN_PATH_STYLE: true AWS_PLUGIN_PATH_STYLE: true
depends_on: depends_on:
- install dependencies - install dependencies
settings: settings:
rebuild: true rebuild: true
override: false override: false
endpoint: endpoint:
from_secret: S3_ENDPOINT from_secret: S3_ENDPOINT
bucket: bucket:
from_secret: CACHE_BUCKET from_secret: CACHE_BUCKET
region: us-east-1 region: us-east-1
path-style: true path-style: true
cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}' cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}'
mount: mount:
- deps - deps
- _build - _build
- .hex - .hex
- .mix - .mix
- .rebar3 - .rebar3
- name: mix compile - name: mix compile
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- install dependencies - install dependencies
commands: commands:
- asdf mix compile --warnings-as-errors - asdf mix compile --warnings-as-errors
- name: mix test - name: mix test
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- asdf mix test - asdf mix test
- name: mix credo - name: mix credo
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- asdf mix credo --strict - asdf mix credo --strict
- name: mix hex.audit - name: mix hex.audit
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- asdf mix hex.audit - asdf mix hex.audit
- name: mix format - name: mix format
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- asdf mix format --check-formatted - asdf mix format --check-formatted
- name: mix deps.unlock - name: mix deps.unlock
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- asdf mix deps.unlock --check-unused - asdf mix deps.unlock --check-unused
- name: mix doctor - name: mix doctor
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- asdf mix doctor --full - asdf mix doctor --full
- name: mix git_ops.check_message - name: mix git_ops.check_message
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
depends_on: depends_on:
- mix compile - mix compile
commands: commands:
- git log -1 --format=%s > .last_commit_message - git log -1 --format=%s > .last_commit_message
- asdf mix git_ops.check_message .last_commit_message - asdf mix git_ops.check_message .last_commit_message
- name: mix git_ops.release - name: mix git_ops.release
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
when: when:
branch: branch:
- main - main
event: event:
exclude: exclude:
- pull_request - pull_request
depends_on: depends_on:
- mix test - mix test
- mix credo - mix credo
- mix hex.audit - mix hex.audit
- mix format - mix format
- mix deps.unlock - mix deps.unlock
- mix doctor - mix doctor
- mix git_ops.check_message - mix git_ops.check_message
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
ASDF_DIR: /root/.asdf ASDF_DIR: /root/.asdf
DRONE_TOKEN: DRONE_TOKEN:
from_secret: DRONE_TOKEN from_secret: DRONE_TOKEN
commands: commands:
- git fetch --tags - git fetch --tags
- . $ASDF_DIR/asdf.sh - . $ASDF_DIR/asdf.sh
- mix git_ops.project_info --format=shell > before.env - mix git_ops.project_info --format=shell > before.env
- mix git_ops.release --yes --no-major || true - mix git_ops.release --yes --no-major || true
- mix git_ops.project_info --format=shell > after.env - mix git_ops.project_info --format=shell > after.env
- . ./before.env - . ./before.env
- export OLD_APP_VERSION=$${APP_VERSION} - export OLD_APP_VERSION=$${APP_VERSION}
- . ./after.env - . ./after.env
- export NEW_APP_VERSION=$${APP_VERSION} - export NEW_APP_VERSION=$${APP_VERSION}
- if [ "v$${OLD_APP_VERSION}" != "v$${NEW_APP_VERSION}" ]; then - if [ "v$${OLD_APP_VERSION}" != "v$${NEW_APP_VERSION}" ]; then
- export GIT_URL=$(echo $DRONE_GIT_HTTP_URL | sed -e "s/:\\/\\//:\\/\\/$DRONE_REPO_OWNER:$DRONE_TOKEN@/") - export GIT_URL=$(echo $DRONE_GIT_HTTP_URL | sed -e "s/:\\/\\//:\\/\\/$DRONE_REPO_OWNER:$DRONE_TOKEN@/")
- git push $${GIT_URL} "HEAD:${DRONE_COMMIT_REF}" "refs/tags/v$${NEW_APP_VERSION}" - git push $${GIT_URL} "HEAD:${DRONE_COMMIT_REF}" "refs/tags/v$${NEW_APP_VERSION}"
- fi - fi
- name: build artifacts - name: build artifacts
image: code.harton.nz/james/asdf_container:latest image: code.harton.nz/james/asdf_container:latest
when: when:
event: event:
- tag - tag
refs: refs:
include: include:
- refs/tags/v* - refs/tags/v*
depends_on: depends_on:
- mix test - mix test
- mix credo - mix credo
- mix hex.audit - mix hex.audit
- mix format - mix format
- mix deps.unlock - mix deps.unlock
- mix doctor - mix doctor
- mix git_ops.check_message - mix git_ops.check_message
environment: environment:
MIX_ENV: test MIX_ENV: test
HEX_HOME: /drone/src/.hex HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3 REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf ASDF_DATA_DIR: /drone/src/.asdf
ASDF_DIR: /root/.asdf ASDF_DIR: /root/.asdf
commands: commands:
- . $ASDF_DIR/asdf.sh - . $ASDF_DIR/asdf.sh
- mix git_ops.project_info --format=shell > app.env - mix git_ops.project_info --format=shell > app.env
- . ./app.env - . ./app.env
- mkdir artifacts - mkdir artifacts
- mix hex.build -o "artifacts/$${APP_NAME}-$${APP_VERSION}-pkg.tar" - mix hex.build -o "artifacts/$${APP_NAME}-$${APP_VERSION}-pkg.tar"
- gzip "artifacts/$${APP_NAME}-$${APP_VERSION}-pkg.tar" - gzip "artifacts/$${APP_NAME}-$${APP_VERSION}-pkg.tar"
- mix docs - mix docs
- tar zcvf "artifacts/$${APP_NAME}-$${APP_VERSION}-docs.tar.gz" doc/ - tar zcvf "artifacts/$${APP_NAME}-$${APP_VERSION}-docs.tar.gz" doc/
- git tag -l --format='%(contents:subject)' v$${APP_VERSION} > tag_subject - git tag -l --format='%(contents:subject)' v$${APP_VERSION} > tag_subject
- git tag -l --format='%(contents:body)' v$${APP_VERSION} > tag_body - git tag -l --format='%(contents:body)' v$${APP_VERSION} > tag_body
- name: gitea release - name: gitea release
image: plugins/gitea-release image: plugins/gitea-release
when: when:
event: event:
- tag - tag
refs: refs:
include: include:
- refs/tags/v* - refs/tags/v*
depends_on: depends_on:
- build artifacts - build artifacts
settings: settings:
api_key: api_key:
from_secret: DRONE_TOKEN from_secret: DRONE_TOKEN
base_url: https://code.harton.nz base_url: https://code.harton.nz
files: artifacts/*.tar.gz files: artifacts/*.tar.gz
checksum: sha256 checksum: sha256
- name: docs tag release - name: docs release
when: when:
event: event:
- tag - tag
refs: refs:
include: include:
- refs/tags/v* - refs/tags/v*
image: minio/mc image: minio/mc
environment: environment:
S3_ENDPOINT: S3_ENDPOINT:
from_secret: S3_ENDPOINT from_secret: S3_ENDPOINT
ACCESS_KEY: ACCESS_KEY:
from_secret: ACCESS_KEY_ID from_secret: ACCESS_KEY_ID
SECRET_KEY: SECRET_KEY:
from_secret: SECRET_ACCESS_KEY from_secret: SECRET_ACCESS_KEY
depends_on: depends_on:
- build artifacts - build artifacts
commands: commands:
- mc alias set store $${S3_ENDPOINT} $${ACCESS_KEY} $${SECRET_KEY} - mc alias set store $${S3_ENDPOINT} $${ACCESS_KEY} $${SECRET_KEY}
- mc mb -p store/docs.harton.nz - mc mb -p store/docs.harton.nz
- mc anonymous set download store/docs.harton.nz - mc anonymous set download store/docs.harton.nz
- mc mirror --overwrite doc/ store/docs.harton.nz/$${DRONE_REPO}/$${DRONE_TAG} - mc mirror --overwrite doc/ store/docs.harton.nz/$${DRONE_REPO}/$${DRONE_TAG}
- mc mirror --overwrite doc/ store/docs.harton.nz/$${DRONE_REPO}
- name: docs main release - name: hex release
when: image: code.harton.nz/james/asdf_container:latest
branch: when:
- main event:
event: - tag
exclude: refs:
- pull_request include:
image: minio/mc - refs/tags/v*
environment: depends_on:
S3_ENDPOINT: - build artifacts
from_secret: S3_ENDPOINT environment:
ACCESS_KEY: MIX_ENV: test
from_secret: ACCESS_KEY_ID HEX_HOME: /drone/src/.hex
SECRET_KEY: MIX_HOME: /drone/src/.mix
from_secret: SECRET_ACCESS_KEY REBAR_BASE_DIR: /drone/src/.rebar3
depends_on: ASDF_DATA_DIR: /drone/src/.asdf
- build artifacts ASDF_DIR: /root/.asdf
commands: HEX_API_KEY:
- mc alias set store $${S3_ENDPOINT} $${ACCESS_KEY} $${SECRET_KEY} from_secret: HEX_API_KEY
- mc mb -p store/docs.harton.nz commands:
- mc anonymous set download store/docs.harton.nz - . $ASDF_DIR/asdf.sh
- mc mirror --overwrite doc/ store/docs.harton.nz/$${DRONE_REPO} - mix hex.publish --yes
- name: hex release
image: code.harton.nz/james/asdf_container:latest
when:
event:
- tag
refs:
include:
- refs/tags/v*
depends_on:
- build artifacts
environment:
MIX_ENV: test
HEX_HOME: /drone/src/.hex
MIX_HOME: /drone/src/.mix
REBAR_BASE_DIR: /drone/src/.rebar3
ASDF_DATA_DIR: /drone/src/.asdf
ASDF_DIR: /root/.asdf
HEX_API_KEY:
from_secret: HEX_API_KEY
commands:
- . $ASDF_DIR/asdf.sh
- mix hex.publish --yes