chore: migrate to local. #23
10 changed files with 552 additions and 185 deletions
503
.drone.yml
Normal file
503
.drone.yml
Normal file
|
@ -0,0 +1,503 @@
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: 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: install dependencies
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
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
|
||||||
|
depends_on:
|
||||||
|
- restore ASDF cache
|
||||||
|
- restore build cache
|
||||||
|
commands:
|
||||||
|
- asdf_install
|
||||||
|
- rm -rf .asdf/downloads
|
||||||
|
- . $ASDF_DIR/asdf.sh
|
||||||
|
- mix local.hex --if-missing --force
|
||||||
|
- mix local.rebar --if-missing --force
|
||||||
|
- mix deps.get
|
||||||
|
- mix deps.compile
|
||||||
|
|
||||||
|
- name: store 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
|
||||||
|
depends_on:
|
||||||
|
- install dependencies
|
||||||
|
settings:
|
||||||
|
rebuild: true
|
||||||
|
override: false
|
||||||
|
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: store 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
|
||||||
|
depends_on:
|
||||||
|
- install dependencies
|
||||||
|
settings:
|
||||||
|
rebuild: true
|
||||||
|
override: false
|
||||||
|
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
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
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
|
||||||
|
MIX_HOME: /drone/src/.mix
|
||||||
|
REBAR_BASE_DIR: /drone/src/.rebar3
|
||||||
|
ASDF_DATA_DIR: /drone/src/.asdf
|
||||||
|
depends_on:
|
||||||
|
- restore ASDF cache
|
||||||
|
- restore build cache
|
||||||
|
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
|
||||||
|
MIX_HOME: /drone/src/.mix
|
||||||
|
REBAR_BASE_DIR: /drone/src/.rebar3
|
||||||
|
ASDF_DATA_DIR: /drone/src/.asdf
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- asdf mix test
|
||||||
|
|
||||||
|
- name: mix credo
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
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
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- asdf mix credo --strict
|
||||||
|
|
||||||
|
- name: mix hex.audit
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
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
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- asdf mix hex.audit
|
||||||
|
|
||||||
|
- name: mix format
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
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
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- asdf mix format --check-formatted
|
||||||
|
|
||||||
|
- name: mix deps.unlock
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
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
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- asdf mix deps.unlock --check-unused
|
||||||
|
|
||||||
|
- name: mix doctor
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
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
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- asdf mix doctor --full
|
||||||
|
|
||||||
|
- 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
|
||||||
|
MIX_HOME: /drone/src/.mix
|
||||||
|
REBAR_BASE_DIR: /drone/src/.rebar3
|
||||||
|
ASDF_DATA_DIR: /drone/src/.asdf
|
||||||
|
depends_on:
|
||||||
|
- mix compile
|
||||||
|
commands:
|
||||||
|
- 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"
|
||||||
|
depends_on:
|
||||||
|
- restore ASDF cache
|
||||||
|
- restore build cache
|
||||||
|
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
|
||||||
|
DRONE_TOKEN:
|
||||||
|
from_secret: DRONE_TOKEN
|
||||||
|
commands:
|
||||||
|
- git fetch --tags
|
||||||
|
- . $ASDF_DIR/asdf.sh
|
||||||
|
- mix git_ops.project_info --format=shell > before.env
|
||||||
|
- mix git_ops.release --yes --no-major || true
|
||||||
|
- mix git_ops.project_info --format=shell > after.env
|
||||||
|
- . ./before.env
|
||||||
|
- export OLD_APP_VERSION=$${APP_VERSION}
|
||||||
|
- . ./after.env
|
||||||
|
- export NEW_APP_VERSION=$${APP_VERSION}
|
||||||
|
- 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@/")
|
||||||
|
- 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"
|
||||||
|
depends_on:
|
||||||
|
- restore ASDF cache
|
||||||
|
- restore build cache
|
||||||
|
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
|
||||||
|
commands:
|
||||||
|
- . $ASDF_DIR/asdf.sh
|
||||||
|
- mix git_ops.project_info --format=shell > app.env
|
||||||
|
- . ./app.env
|
||||||
|
- mkdir artifacts
|
||||||
|
- mix hex.build -o "artifacts/$${APP_NAME}-$${APP_VERSION}-pkg.tar"
|
||||||
|
- gzip "artifacts/$${APP_NAME}-$${APP_VERSION}-pkg.tar"
|
||||||
|
- mix docs
|
||||||
|
- 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:body)' v$${APP_VERSION} > tag_body
|
||||||
|
|
||||||
|
- name: gitea release
|
||||||
|
image: plugins/gitea-release
|
||||||
|
depends_on:
|
||||||
|
- build artifacts
|
||||||
|
settings:
|
||||||
|
api_key:
|
||||||
|
from_secret: DRONE_TOKEN
|
||||||
|
base_url: https://code.harton.nz
|
||||||
|
files: artifacts/*.tar.gz
|
||||||
|
checksum: sha256
|
||||||
|
title: tag_subject
|
||||||
|
note: tag_body
|
||||||
|
|
||||||
|
- name: hex release
|
||||||
|
image: code.harton.nz/james/asdf_container:latest
|
||||||
|
pull: "always"
|
||||||
|
depends_on:
|
||||||
|
- restore ASDF cache
|
||||||
|
- restore build cache
|
||||||
|
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
|
138
.gitlab-ci.yml
138
.gitlab-ci.yml
|
@ -1,138 +0,0 @@
|
||||||
stages:
|
|
||||||
- build
|
|
||||||
- test
|
|
||||||
- release
|
|
||||||
|
|
||||||
variables:
|
|
||||||
MIX_ENV: "test"
|
|
||||||
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/"
|
|
||||||
HEX_HOME: "$CI_PROJECT_DIR/.hex"
|
|
||||||
MIX_HOME: "$CI_PROJECT_DIR/.mix"
|
|
||||||
|
|
||||||
build:
|
|
||||||
image: elixir:latest
|
|
||||||
stage: build
|
|
||||||
cache:
|
|
||||||
key: "$CI_JOB_NAME"
|
|
||||||
paths:
|
|
||||||
- deps
|
|
||||||
- _build
|
|
||||||
- .hex
|
|
||||||
- .mix
|
|
||||||
script:
|
|
||||||
- mix local.hex --force
|
|
||||||
- mix local.rebar --force
|
|
||||||
- mix deps.get
|
|
||||||
- mix deps.compile
|
|
||||||
- mix git_ops.project_info -f dotenv > project_info.env
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- _build/
|
|
||||||
- deps/
|
|
||||||
- .hex
|
|
||||||
- .mix
|
|
||||||
reports:
|
|
||||||
dotenv: project_info.env
|
|
||||||
|
|
||||||
test:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- mix test
|
|
||||||
|
|
||||||
credo:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- mix credo
|
|
||||||
|
|
||||||
audit:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- mix hex.audit
|
|
||||||
|
|
||||||
format:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- mix format --check-formatted
|
|
||||||
|
|
||||||
pages:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: release
|
|
||||||
script:
|
|
||||||
- mix docs -o public
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- public
|
|
||||||
only:
|
|
||||||
- main@jimsy/heap
|
|
||||||
|
|
||||||
git_ops:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: release
|
|
||||||
only:
|
|
||||||
- main@jimsy/heap
|
|
||||||
except:
|
|
||||||
variables:
|
|
||||||
- $CI_COMMIT_MESSAGE =~ /chore\:\ release version/
|
|
||||||
script:
|
|
||||||
- |
|
|
||||||
export OLD_APP_VERSION=$APP_VERSION
|
|
||||||
mkdir -p artifacts
|
|
||||||
git config --global user.name "Gitlab Runner for ${GITLAB_USER_NAME}"
|
|
||||||
git config --global user.email "${GITLAB_USER_EMAIL}"
|
|
||||||
mix git_ops.release --yes || true
|
|
||||||
mix git_ops.project_info -f shell > artifacts/env
|
|
||||||
source artifacts/env
|
|
||||||
if [ "v${OLD_APP_VERSION}" != "v${APP_VERSION}" ]; then
|
|
||||||
mix hex.build -o "artifacts/${APP_NAME}-${APP_VERSION}.tar"
|
|
||||||
gzip "artifacts/${APP_NAME}-${APP_VERSION}.tar"
|
|
||||||
mix docs && tar zcvf "artifacts/${APP_NAME}-${APP_VERSION}-docs.tar.gz" doc/
|
|
||||||
curl --header "JOB_TOKEN: ${CI_JOB_TOKEN}" --upload-file "artifacts/${APP_NAME}-${APP_VERSION}.tar.gz" "${PACKAGE_REGISTRY_URL}/${APP_NAME}/${APP_VERSION}/${APP_NAME}-${APP_VERSION}.tar.gz"
|
|
||||||
curl --header "JOB_TOKEN: ${CI_JOB_TOKEN}" --upload-file "artifacts/${APP_NAME}-${APP_VERSION}-docs.tar.gz" "${PACKAGE_REGISTRY_URL}/${APP_NAME}/${APP_VERSION}/${APP_NAME}-${APP_VERSION}-docs.tar.gz"
|
|
||||||
git push "https://project_${CI_PROJECT_ID}_bot:${RELEASE_TOKEN}@gitlab.com/${CI_PROJECT_PATH}.git" "HEAD:${CI_COMMIT_REF_NAME}" "refs/tags/v${APP_VERSION}"
|
|
||||||
fi
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- artifacts/*
|
|
||||||
|
|
||||||
release-gitlab:
|
|
||||||
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: release
|
|
||||||
only:
|
|
||||||
- tags@jimsy/heap
|
|
||||||
- /^v\d+\.\d+\.\d+(-\w+)?$/
|
|
||||||
script:
|
|
||||||
- release-cli create \
|
|
||||||
--name "Release ${APP_NAME} ${APP_VERSION}" \
|
|
||||||
--description "./CHANGELOG.md" \
|
|
||||||
--tag-name "v${APP_VERSION}" \
|
|
||||||
--assets-link "{\"name\":\"${APP_NAME}-${APP_VERSION}.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/${APP_NAME}/${APP_VERSION}/${APP_NAME}-${APP_VERSION}.tar.gz\"}" \
|
|
||||||
--assets-link "{\"name\":\"${APP_NAME}-${APP_VERSION}-docs.tar.gz\",\"url\":\"${PACKAGE_REGISTRY_URL}/${APP_NAME}/${APP_VERSION}/${APP_NAME}-${APP_VERSION}-docs.tar.gz\"}"
|
|
||||||
|
|
||||||
release-hex:
|
|
||||||
image: elixir:latest
|
|
||||||
dependencies:
|
|
||||||
- build
|
|
||||||
stage: release
|
|
||||||
only:
|
|
||||||
- tags@jimsy/heap
|
|
||||||
- /^v\d+\.\d+\.\d+(-\w+)?$/
|
|
||||||
script:
|
|
||||||
- mix hex.publish --yes
|
|
2
.tool-versions
Normal file
2
.tool-versions
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
erlang 26.0.2
|
||||||
|
elixir 1.15.4
|
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -5,14 +5,10 @@ See [Conventional Commits](Https://conventionalcommits.org) for commit guideline
|
||||||
|
|
||||||
<!-- changelog -->
|
<!-- changelog -->
|
||||||
|
|
||||||
## [v3.0.0](https://gitlab.com/jimsy/heap/compare/v2.0.2...v3.0.0) (2023-01-16)
|
## [v3.0.0](https://code.harton.nz/james/heap/compare/v2.0.2...v3.0.0) (2023-01-16)
|
||||||
|
|
||||||
### Breaking Changes:
|
### Breaking Changes:
|
||||||
|
|
||||||
* Relicense to HL3-FULL.
|
- Relicense to HL3-FULL.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## [v2.0.2](https://gitlab.com/jimsy/heap/compare/v2.0.2...v2.0.2) (2020-12-28)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## [v2.0.2](https://code.harton.nz/james/heap/compare/v2.0.2...v2.0.2) (2020-12-28)
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# Heap
|
# Heap
|
||||||
[![pipeline status](https://gitlab.com/jimsy/heap/badges/main/pipeline.svg)](https://gitlab.com/jimsy/heap/commits/main)
|
|
||||||
|
[![Build Status](https://drone.harton.nz/api/badges/james/heap/status.svg?ref=refs/heads/main)](https://drone.harton.nz/james/heap)
|
||||||
[![Hex.pm](https://img.shields.io/hexpm/v/heap.svg)](https://hex.pm/packages/heap)
|
[![Hex.pm](https://img.shields.io/hexpm/v/heap.svg)](https://hex.pm/packages/heap)
|
||||||
[![Hippocratic License HL3-FULL](https://img.shields.io/static/v1?label=Hippocratic%20License&message=HL3-FULL&labelColor=5e2751&color=bc8c3d)](https://firstdonoharm.dev/version/3/0/full.html)
|
[![Hippocratic License HL3-FULL](https://img.shields.io/static/v1?label=Hippocratic%20License&message=HL3-FULL&labelColor=5e2751&color=bc8c3d)](https://firstdonoharm.dev/version/3/0/full.html)
|
||||||
|
|
||||||
A Heap is a very useful data structure, because it sorts, quickly, at insert time.
|
A Heap is a very useful data structure, because it sorts, quickly, at insert time.
|
||||||
|
|
||||||
|
|
||||||
See also: https://en.wikipedia.org/wiki/Heap_(data_structure)
|
See also: https://en.wikipedia.org/wiki/Heap_(data_structure)
|
||||||
|
|
||||||
You can use it for things like:
|
You can use it for things like:
|
||||||
|
|
|
@ -3,7 +3,7 @@ import Config
|
||||||
config :git_ops,
|
config :git_ops,
|
||||||
mix_project: Mix.Project.get!(),
|
mix_project: Mix.Project.get!(),
|
||||||
changelog_file: "CHANGELOG.md",
|
changelog_file: "CHANGELOG.md",
|
||||||
repository_url: "https://gitlab.com/jimsy/heap",
|
repository_url: "https://code.harton.nz/james/heap",
|
||||||
manage_mix_version?: true,
|
manage_mix_version?: true,
|
||||||
manage_readme_version: "README.md",
|
manage_readme_version: "README.md",
|
||||||
version_tag_prefix: "v"
|
version_tag_prefix: "v"
|
||||||
|
|
13
lib/heap.ex
13
lib/heap.ex
|
@ -7,7 +7,7 @@ defmodule Heap do
|
||||||
See also: [Heap (data structure) on Wikipedia](https://en.wikipedia.org/wiki/Heap_(data_structure)).
|
See also: [Heap (data structure) on Wikipedia](https://en.wikipedia.org/wiki/Heap_(data_structure)).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@type t() :: %Heap{
|
@type t :: %Heap{
|
||||||
data: tuple() | nil,
|
data: tuple() | nil,
|
||||||
size: non_neg_integer(),
|
size: non_neg_integer(),
|
||||||
comparator: :> | :< | (any(), any() -> boolean())
|
comparator: :> | :< | (any(), any() -> boolean())
|
||||||
|
@ -26,7 +26,7 @@ defmodule Heap do
|
||||||
...> |> Heap.root()
|
...> |> Heap.root()
|
||||||
1
|
1
|
||||||
"""
|
"""
|
||||||
@spec min() :: t
|
@spec min :: t
|
||||||
def min, do: Heap.new(:<)
|
def min, do: Heap.new(:<)
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -42,7 +42,7 @@ defmodule Heap do
|
||||||
...> |> Heap.root()
|
...> |> Heap.root()
|
||||||
10
|
10
|
||||||
"""
|
"""
|
||||||
@spec max() :: t
|
@spec max :: t
|
||||||
def max, do: Heap.new(:>)
|
def max, do: Heap.new(:>)
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -56,7 +56,7 @@ defmodule Heap do
|
||||||
...> |> Heap.comparator()
|
...> |> Heap.comparator()
|
||||||
:<
|
:<
|
||||||
"""
|
"""
|
||||||
@spec new() :: t
|
@spec new :: t
|
||||||
def new, do: %Heap{comparator: :<}
|
def new, do: %Heap{comparator: :<}
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -91,10 +91,9 @@ defmodule Heap do
|
||||||
...> |> Enum.map(fn {_, what} -> what end)
|
...> |> Enum.map(fn {_, what} -> what end)
|
||||||
[:milk, :jam, :bread, :eggs]
|
[:milk, :jam, :bread, :eggs]
|
||||||
"""
|
"""
|
||||||
@spec new(:> | :<) :: t
|
@spec new(:> | :< | (any, any -> boolean)) :: t
|
||||||
def new(:>), do: %Heap{comparator: :>}
|
def new(:>), do: %Heap{comparator: :>}
|
||||||
def new(:<), do: %Heap{comparator: :<}
|
def new(:<), do: %Heap{comparator: :<}
|
||||||
@spec new((any, any -> boolean)) :: t
|
|
||||||
def new(fun) when is_function(fun, 2), do: %Heap{comparator: fun}
|
def new(fun) when is_function(fun, 2), do: %Heap{comparator: fun}
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
@ -214,7 +213,7 @@ defmodule Heap do
|
||||||
...> |> Heap.comparator()
|
...> |> Heap.comparator()
|
||||||
:<
|
:<
|
||||||
"""
|
"""
|
||||||
@spec comparator(t) :: :< | :>
|
@spec comparator(t) :: :< | :> | (any, any -> boolean)
|
||||||
def comparator(%Heap{comparator: d}), do: d
|
def comparator(%Heap{comparator: d}), do: d
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
|
|
16
mix.exs
16
mix.exs
|
@ -32,7 +32,7 @@ defmodule Heap.Mixfile do
|
||||||
maintainers: ["James Harton <james@harton.nz>"],
|
maintainers: ["James Harton <james@harton.nz>"],
|
||||||
licenses: ["HL3-FULL"],
|
licenses: ["HL3-FULL"],
|
||||||
links: %{
|
links: %{
|
||||||
"Repository" => "https://gitlab.com/jimsy/heap",
|
"Repository" => "https://code.harton.nz/james/heap",
|
||||||
"Docs" => "https://hexdocs.pm/heap"
|
"Docs" => "https://hexdocs.pm/heap"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -48,11 +48,17 @@ defmodule Heap.Mixfile do
|
||||||
#
|
#
|
||||||
# Type "mix help deps" for more examples and options
|
# Type "mix help deps" for more examples and options
|
||||||
defp deps do
|
defp deps do
|
||||||
|
opts = [only: ~w[dev test]a, runtime: false]
|
||||||
|
|
||||||
[
|
[
|
||||||
{:ex_doc, "~> 0.30", only: ~w[dev test]a},
|
{:credo, "~> 1.7", opts},
|
||||||
{:earmark, "~> 1.4", only: ~w[dev test]a},
|
{:dialyxir, "~> 1.3", opts},
|
||||||
{:credo, "~> 1.6", only: ~w[dev test]a, runtime: false},
|
{:doctor, "~> 0.21", opts},
|
||||||
{:git_ops, "~> 2.4", only: ~w[dev test]a, runtime: false}
|
{:earmark, ">= 0.0.0", opts},
|
||||||
|
{:ex_check, "~> 0.15", opts},
|
||||||
|
{:ex_doc, ">= 0.0.0", opts},
|
||||||
|
{:git_ops, "~> 2.6", opts},
|
||||||
|
{:mix_audit, "~> 2.1", opts}
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
22
mix.lock
22
mix.lock
|
@ -1,21 +1,23 @@
|
||||||
%{
|
%{
|
||||||
"bunt": {:hex, :bunt, "0.2.0", "951c6e801e8b1d2cbe58ebbd3e616a869061ddadcc4863d0a2182541acae9a38", [:mix], [], "hexpm", "7af5c7e09fe1d40f76c8e4f9dd2be7cebd83909f31fee7cd0e9eadc567da8353"},
|
"bunt": {:hex, :bunt, "0.2.1", "e2d4792f7bc0ced7583ab54922808919518d0e57ee162901a16a1b6664ef3b14", [:mix], [], "hexpm", "a330bfb4245239787b15005e66ae6845c9cd524a288f0d141c148b02603777a5"},
|
||||||
"credo": {:hex, :credo, "1.6.1", "7dc76dcdb764a4316c1596804c48eada9fff44bd4b733a91ccbf0c0f368be61e", [:mix], [{:bunt, "~> 0.2.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "698607fb5993720c7e93d2d8e76f2175bba024de964e160e2f7151ef3ab82ac5"},
|
"credo": {:hex, :credo, "1.7.0", "6119bee47272e85995598ee04f2ebbed3e947678dee048d10b5feca139435f75", [:mix], [{:bunt, "~> 0.2.1", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2.8", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "6839fcf63d1f0d1c0f450abc8564a57c43d644077ab96f2934563e68b8a769d7"},
|
||||||
"dialyxir": {:hex, :dialyxir, "1.0.0-rc.4", "71b42f5ee1b7628f3e3a6565f4617dfb02d127a0499ab3e72750455e986df001", [:mix], [{:erlex, "~> 0.1", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm"},
|
"decimal": {:hex, :decimal, "2.1.1", "5611dca5d4b2c3dd497dec8f68751f1f1a54755e8ed2a966c2633cf885973ad6", [:mix], [], "hexpm", "53cfe5f497ed0e7771ae1a475575603d77425099ba5faef9394932b35020ffcc"},
|
||||||
|
"dialyxir": {:hex, :dialyxir, "1.3.0", "fd1672f0922b7648ff9ce7b1b26fcf0ef56dda964a459892ad15f6b4410b5284", [:mix], [{:erlex, ">= 0.2.6", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "00b2a4bcd6aa8db9dcb0b38c1225b7277dca9bc370b6438715667071a304696f"},
|
||||||
|
"doctor": {:hex, :doctor, "0.21.0", "20ef89355c67778e206225fe74913e96141c4d001cb04efdeba1a2a9704f1ab5", [:mix], [{:decimal, "~> 2.0", [hex: :decimal, repo: "hexpm", optional: false]}], "hexpm", "a227831daa79784eb24cdeedfa403c46a4cb7d0eab0e31232ec654314447e4e0"},
|
||||||
"earmark": {:hex, :earmark, "1.4.19", "3854a17305c880cc46305af15fb1630568d23a709aba21aaa996ced082fc29d7", [:mix], [{:earmark_parser, ">= 1.4.18", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "d5a8c9f9e37159a8fdd3ea8437fb4e229eaf56d5129b9a011dc4780a4872079d"},
|
"earmark": {:hex, :earmark, "1.4.19", "3854a17305c880cc46305af15fb1630568d23a709aba21aaa996ced082fc29d7", [:mix], [{:earmark_parser, ">= 1.4.18", [hex: :earmark_parser, repo: "hexpm", optional: false]}], "hexpm", "d5a8c9f9e37159a8fdd3ea8437fb4e229eaf56d5129b9a011dc4780a4872079d"},
|
||||||
"earmark_parser": {:hex, :earmark_parser, "1.4.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"},
|
"earmark_parser": {:hex, :earmark_parser, "1.4.33", "3c3fd9673bb5dcc9edc28dd90f50c87ce506d1f71b70e3de69aa8154bc695d44", [:mix], [], "hexpm", "2d526833729b59b9fdb85785078697c72ac5e5066350663e5be6a1182da61b8f"},
|
||||||
"erlex": {:hex, :erlex, "0.1.6", "c01c889363168d3fdd23f4211647d8a34c0f9a21ec726762312e08e083f3d47e", [:mix], [], "hexpm"},
|
"erlex": {:hex, :erlex, "0.2.6", "c7987d15e899c7a2f34f5420d2a2ea0d659682c06ac607572df55a43753aa12e", [:mix], [], "hexpm", "2ed2e25711feb44d52b17d2780eabf998452f6efda104877a3881c2f8c0c0c75"},
|
||||||
"espec": {:hex, :espec, "0.8.28", "f002710673d215876c4ca6fc74cbf5e330954badea7389d2284d2050940f1779", [:mix], [{:meck, "~> 0.8.4", [hex: :meck, optional: false]}]},
|
"ex_check": {:hex, :ex_check, "0.15.0", "074b94c02de11c37bba1ca82ae5cc4926e6ccee862e57a485b6ba60fca2d8dc1", [:mix], [], "hexpm", "33848031a0c7e4209c3b4369ce154019788b5219956220c35ca5474299fb6a0e"},
|
||||||
"ex_doc": {:hex, :ex_doc, "0.30.0", "ed94bf5183f559d2f825e4f866cc0eab277bbb17da76aff40f8e0f149656943e", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "6743fe46704fe27e2f2558faa61f00e5356528768807badb2092d38476d6dac2"},
|
"ex_doc": {:hex, :ex_doc, "0.30.0", "ed94bf5183f559d2f825e4f866cc0eab277bbb17da76aff40f8e0f149656943e", [:mix], [{:earmark_parser, "~> 1.4.31", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "6743fe46704fe27e2f2558faa61f00e5356528768807badb2092d38476d6dac2"},
|
||||||
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
|
"file_system": {:hex, :file_system, "0.2.10", "fb082005a9cd1711c05b5248710f8826b02d7d1784e7c3451f9c1231d4fc162d", [:mix], [], "hexpm", "41195edbfb562a593726eda3b3e8b103a309b733ad25f3d642ba49696bf715dc"},
|
||||||
"git_cli": {:hex, :git_cli, "0.3.0", "a5422f9b95c99483385b976f5d43f7e8233283a47cda13533d7c16131cb14df5", [:mix], [], "hexpm", "78cb952f4c86a41f4d3511f1d3ecb28edb268e3a7df278de2faa1bd4672eaf9b"},
|
"git_cli": {:hex, :git_cli, "0.3.0", "a5422f9b95c99483385b976f5d43f7e8233283a47cda13533d7c16131cb14df5", [:mix], [], "hexpm", "78cb952f4c86a41f4d3511f1d3ecb28edb268e3a7df278de2faa1bd4672eaf9b"},
|
||||||
"git_ops": {:hex, :git_ops, "2.4.5", "185a724dfde3745edd22f7571d59c47a835cf54ded67e9ccbc951920b7eec4c2", [:mix], [{:git_cli, "~> 0.2", [hex: :git_cli, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e323a5b01ad53bc8c19c3a444be3e61ed7803ecd2e95530446ae9327d0143ecc"},
|
"git_ops": {:hex, :git_ops, "2.6.0", "e0791ee1cf5db03f2c61b7ebd70e2e95cba2bb9b9793011f26609f22c0900087", [:mix], [{:git_cli, "~> 0.2", [hex: :git_cli, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "b98fca849b18aaf490f4ac7d1dd8c6c469b0cc3e6632562d366cab095e666ffe"},
|
||||||
"inch_ex": {:hex, :inch_ex, "2.0.0", "24268a9284a1751f2ceda569cd978e1fa394c977c45c331bb52a405de544f4de", [:mix], [{:bunt, "~> 0.2", [hex: :bunt, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "96d0ec5ecac8cf63142d02f16b7ab7152cf0f0f1a185a80161b758383c9399a8"},
|
"jason": {:hex, :jason, "1.4.1", "af1504e35f629ddcdd6addb3513c3853991f694921b1b9368b0bd32beb9f1b63", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "fbb01ecdfd565b56261302f7e1fcc27c4fb8f32d56eab74db621fc154604a7a1"},
|
||||||
"jason": {:hex, :jason, "1.2.2", "ba43e3f2709fd1aa1dce90aaabfd039d000469c05c56f0b8e31978e03fa39052", [:mix], [{:decimal, "~> 1.0 or ~> 2.0", [hex: :decimal, repo: "hexpm", optional: true]}], "hexpm", "18a228f5f0058ee183f29f9eae0805c6e59d61c3b006760668d8d18ff0d12179"},
|
|
||||||
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
|
"makeup": {:hex, :makeup, "1.1.0", "6b67c8bc2882a6b6a445859952a602afc1a41c2e08379ca057c0f525366fc3ca", [:mix], [{:nimble_parsec, "~> 1.2.2 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "0a45ed501f4a8897f580eabf99a2e5234ea3e75a4373c8a52824f6e873be57a6"},
|
||||||
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
|
"makeup_elixir": {:hex, :makeup_elixir, "0.16.1", "cc9e3ca312f1cfeccc572b37a09980287e243648108384b97ff2b76e505c3555", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.2.3 or ~> 1.3", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "e127a341ad1b209bd80f7bd1620a15693a9908ed780c3b763bccf7d200c767c6"},
|
||||||
"makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"},
|
"makeup_erlang": {:hex, :makeup_erlang, "0.1.2", "ad87296a092a46e03b7e9b0be7631ddcf64c790fa68a9ef5323b6cbb36affc72", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "f3f5a1ca93ce6e092d92b6d9c049bcda58a3b617a8d888f8e7231c85630e8108"},
|
||||||
"meck": {:hex, :meck, "0.8.8", "eeb3efe811d4346e1a7f65b2738abc2ad73cbe1a2c91b5dd909bac2ea0414fa6", [:rebar3], []},
|
"mix_audit": {:hex, :mix_audit, "2.1.1", "653aa6d8f291fc4b017aa82bdb79a4017903902ebba57960ef199cbbc8c008a1", [:make, :mix], [{:jason, "~> 1.1", [hex: :jason, repo: "hexpm", optional: false]}, {:yaml_elixir, "~> 2.9", [hex: :yaml_elixir, repo: "hexpm", optional: false]}], "hexpm", "541990c3ab3a7bb8c4aaa2ce2732a4ae160ad6237e5dcd5ad1564f4f85354db1"},
|
||||||
"nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"},
|
"nimble_parsec": {:hex, :nimble_parsec, "1.3.1", "2c54013ecf170e249e9291ed0a62e5832f70a476c61da16f6aac6dca0189f2af", [:mix], [], "hexpm", "2682e3c0b2eb58d90c6375fc0cc30bc7be06f365bf72608804fb9cffa5e1b167"},
|
||||||
"poison": {:hex, :poison, "3.1.0", "d9eb636610e096f86f25d9a46f35a9facac35609a7591b3be3326e99a0484665", [:mix], [], "hexpm"},
|
"yamerl": {:hex, :yamerl, "0.10.0", "4ff81fee2f1f6a46f1700c0d880b24d193ddb74bd14ef42cb0bcf46e81ef2f8e", [:rebar3], [], "hexpm", "346adb2963f1051dc837a2364e4acf6eb7d80097c0f53cbdc3046ec8ec4b4e6e"},
|
||||||
|
"yaml_elixir": {:hex, :yaml_elixir, "2.9.0", "9a256da867b37b8d2c1ffd5d9de373a4fda77a32a45b452f1708508ba7bbcb53", [:mix], [{:yamerl, "~> 0.10", [hex: :yamerl, repo: "hexpm", optional: false]}], "hexpm", "0cb0e7d4c56f5e99a6253ed1a670ed0e39c13fc45a6da054033928607ac08dfc"},
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"extends": ["gitlab>jimsy/renovate"]
|
|
||||||
}
|
|
Loading…
Reference in a new issue