diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4c96d0a..7ce8417 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -46,13 +46,21 @@ test: integrate: image: elixir:latest - dependencies: - - build stage: test + cache: + key: "$CI_JOB_NAME" + paths: + - deps + - _build + - .hex + - .mix tags: - sense-hat script: - - rm -rf _build + - mix local.hex --force + - mix local.rebar --force + - mix deps.get + - mix deps.compile - SENSE_HAT_PRESENT=true mix test credo: @@ -105,18 +113,21 @@ git_ops: - $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 + mix git_ops.release --yes || true mix git_ops.project_info -f shell > artifacts/env source artifacts/env - 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}" + if [ "v${OLD_APP_VERSION}" != "v${NEW_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/*