Files
rap-inbox/.gitlab-ci.yml
2024-08-29 17:45:21 -03:00

52 lines
1.4 KiB
YAML

stages:
- "build"
- "upload"
- "release"
variables:
RELEASE_DIRECTORY: "rap-inbox-${CI_COMMIT_TAG}-linux-amd64"
RELEASE_TARBALL: "${RELEASE_DIRECTORY}.tar.gz"
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/rap-inbox/${CI_COMMIT_TAG}/${RELEASE_TARBALL}"
build:
rules:
- if: "$CI_COMMIT_TAG"
stage: "build"
image: "crystallang/crystal:1.6-alpine"
cache:
paths:
- "lib/"
script:
- "apk add sqlite-static"
- "shards install"
- "crystal build --release --static src/rap-inbox.cr"
- "strip --strip-all rap-inbox"
- "install -Dm 644 LICENSE ${RELEASE_DIRECTORY}/LICENSE"
- "install -Dm 755 rap-inbox ${RELEASE_DIRECTORY}/rap-inbox"
- "tar -cf ${RELEASE_TARBALL} ${RELEASE_DIRECTORY}"
artifacts:
paths:
- "${RELEASE_TARBALL}"
upload:
rules:
- if: "$CI_COMMIT_TAG"
stage: "upload"
image: "curlimages/curl:latest"
script:
- "curl --header \"JOB-TOKEN: ${CI_JOB_TOKEN}\" --upload-file ${RELEASE_TARBALL} ${PACKAGE_REGISTRY_URL}"
release:
rules:
- if: "$CI_COMMIT_TAG"
stage: "release"
image: "registry.gitlab.com/gitlab-org/release-cli:latest"
script:
- "echo \"running release job\""
release:
name: "rap-inbox $CI_COMMIT_TAG"
description: "$CI_COMMIT_MESSAGE"
tag_name: "$CI_COMMIT_TAG"
ref: "$CI_COMMIT_TAG"
assets:
links:
- name: "Static Linux binary"
url: "${PACKAGE_REGISTRY_URL}"
link_type: "package"