From c79401b49487d641b1829dcbce26d36c956fd56b Mon Sep 17 00:00:00 2001 From: James Harton Date: Thu, 21 Sep 2023 10:57:55 +1200 Subject: [PATCH] chore: simplify CI. (#10) Reviewed-on: https://code.harton.nz/james/lex_luthor/pulls/10 Co-authored-by: James Harton Co-committed-by: James Harton --- .drone.yml | 261 +++++++++++++---------------------------------------- 1 file changed, 62 insertions(+), 199 deletions(-) diff --git a/.drone.yml b/.drone.yml index 13842cb..1cfc114 100644 --- a/.drone.yml +++ b/.drone.yml @@ -26,7 +26,6 @@ steps: - name: restore build cache image: meltwater/drone-cache - pull: "always" environment: AWS_ACCESS_KEY_ID: from_secret: ACCESS_KEY_ID @@ -73,7 +72,6 @@ steps: - name: store ASDF cache image: meltwater/drone-cache - pull: "always" environment: AWS_ACCESS_KEY_ID: from_secret: ACCESS_KEY_ID @@ -97,7 +95,6 @@ steps: - name: store build cache image: meltwater/drone-cache - pull: "always" environment: AWS_ACCESS_KEY_ID: from_secret: ACCESS_KEY_ID @@ -123,65 +120,8 @@ steps: - .mix - .rebar3 ---- - -kind: pipeline -type: docker -name: test - -depends_on: - - build - -steps: -- name: restore ASDF cache - image: meltwater/drone-cache - pull: "always" - environment: - AWS_ACCESS_KEY_ID: - from_secret: ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: - from_secret: SECRET_ACCESS_KEY - AWS_PLUGIN_PATH_STYLE: true - settings: - restore: true - endpoint: - from_secret: S3_ENDPOINT - bucket: - from_secret: CACHE_BUCKET - region: us-east-1 - path-style: true - cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}' - mount: - - .asdf - -- name: restore build cache - image: meltwater/drone-cache - pull: "always" - environment: - AWS_ACCESS_KEY_ID: - from_secret: ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: - from_secret: SECRET_ACCESS_KEY - AWS_PLUGIN_PATH_STYLE: true - settings: - restore: true - endpoint: - from_secret: S3_ENDPOINT - bucket: - from_secret: CACHE_BUCKET - region: us-east-1 - path-style: true - cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}' - mount: - - deps - - _build - - .hex - - .mix - - .rebar3 - - name: mix compile image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -189,14 +129,12 @@ steps: REBAR_BASE_DIR: /drone/src/.rebar3 ASDF_DATA_DIR: /drone/src/.asdf depends_on: - - restore ASDF cache - - restore build cache + - install dependencies commands: - asdf mix compile --warnings-as-errors - name: mix test image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -210,7 +148,6 @@ steps: - name: mix credo image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -224,7 +161,6 @@ steps: - name: mix hex.audit image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -238,7 +174,6 @@ steps: - name: mix format image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -252,7 +187,6 @@ steps: - name: mix deps.unlock image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -266,7 +200,6 @@ steps: - name: mix git_ops.check_message image: code.harton.nz/james/asdf_container:latest - pull: "always" environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -279,73 +212,21 @@ steps: - git log -1 --format=%s > .last_commit_message - asdf mix git_ops.check_message .last_commit_message ---- -kind: pipeline -type: docker -name: git ops - -trigger: - branch: - - main - event: - - push - -depends_on: - - test - -steps: -- name: restore ASDF cache - image: meltwater/drone-cache - pull: "always" - environment: - AWS_ACCESS_KEY_ID: - from_secret: ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: - from_secret: SECRET_ACCESS_KEY - AWS_PLUGIN_PATH_STYLE: true - settings: - restore: true - endpoint: - from_secret: S3_ENDPOINT - bucket: - from_secret: CACHE_BUCKET - region: us-east-1 - path-style: true - cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}' - mount: - - .asdf - -- name: restore build cache - image: meltwater/drone-cache - pull: "always" - environment: - AWS_ACCESS_KEY_ID: - from_secret: ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: - from_secret: SECRET_ACCESS_KEY - AWS_PLUGIN_PATH_STYLE: true - settings: - restore: true - endpoint: - from_secret: S3_ENDPOINT - bucket: - from_secret: CACHE_BUCKET - region: us-east-1 - path-style: true - cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}' - mount: - - deps - - _build - - .hex - - .mix - - .rebar3 - - name: mix git_ops.release image: code.harton.nz/james/asdf_container:latest - pull: "always" + when: + branch: + - main + event: + exclude: + - pull_request depends_on: - - restore ASDF cache - - restore build cache + - mix test + - mix credo + - mix hex.audit + - mix format + - mix deps.unlock + - mix git_ops.check_message environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -370,73 +251,21 @@ steps: - git push $${GIT_URL} "HEAD:${DRONE_COMMIT_REF}" "refs/tags/v$${NEW_APP_VERSION}" - fi ---- - -kind: pipeline -type: docker -name: release - -trigger: - ref: - include: - - refs/tags/v** - -depends_on: - - test - -steps: -- name: restore ASDF cache - image: meltwater/drone-cache - pull: "always" - environment: - AWS_ACCESS_KEY_ID: - from_secret: ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: - from_secret: SECRET_ACCESS_KEY - AWS_PLUGIN_PATH_STYLE: true - settings: - restore: true - endpoint: - from_secret: S3_ENDPOINT - bucket: - from_secret: CACHE_BUCKET - region: us-east-1 - path-style: true - cache_key: 'asdf-{{ os }}-{{ arch }}-{{ checksum ".tool-versions" }}' - mount: - - .asdf - -- name: restore build cache - image: meltwater/drone-cache - pull: "always" - environment: - AWS_ACCESS_KEY_ID: - from_secret: ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY: - from_secret: SECRET_ACCESS_KEY - AWS_PLUGIN_PATH_STYLE: true - settings: - restore: true - endpoint: - from_secret: S3_ENDPOINT - bucket: - from_secret: CACHE_BUCKET - region: us-east-1 - path-style: true - cache_key: 'elixir-{{ checksum "mix.lock" }}-{{ checksum ".tool-versions" }}' - mount: - - deps - - _build - - .hex - - .mix - - .rebar3 - - name: build artifacts image: code.harton.nz/james/asdf_container:latest - pull: "always" + when: + event: + - tag + refs: + include: + - refs/tags/v* depends_on: - - restore ASDF cache - - restore build cache + - mix test + - mix credo + - mix hex.audit + - mix format + - mix deps.unlock + - mix git_ops.check_message environment: MIX_ENV: test HEX_HOME: /drone/src/.hex @@ -458,6 +287,12 @@ steps: - name: gitea release image: plugins/gitea-release + when: + event: + - tag + refs: + include: + - refs/tags/v* depends_on: - build artifacts settings: @@ -469,12 +304,40 @@ steps: title: tag_subject note: tag_body +- name: docs release + when: + event: + - tag + refs: + include: + - refs/tags/v* + image: minio/mc + environment: + S3_ENDPOINT: + from_secret: S3_ENDPOINT + ACCESS_KEY: + from_secret: ACCESS_KEY_ID + SECRET_KEY: + from_secret: SECRET_ACCESS_KEY + depends_on: + - build artifacts + commands: + - mc alias set store $${S3_ENDPOINT} $${ACCESS_KEY} $${SECRET_KEY} + - mc mb -p 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} + - name: hex release image: code.harton.nz/james/asdf_container:latest - pull: "always" + when: + event: + - tag + refs: + include: + - refs/tags/v* depends_on: - - restore ASDF cache - - restore build cache + - build artifacts environment: MIX_ENV: test HEX_HOME: /drone/src/.hex