52 lines
1.4 KiB
YAML
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"
|