hookd 0.1.2

A simple webhook daemon that supports multiple hooks, passing env vars and reading stdout/stderr.
include:
  - project: 'famedly/company/devops/templates/ci-cd'
    ref: main
    file:
      - '/rust.yml'
      - '/docker.yml'

stages:
  - test
  - build
  - upload
  - release

variables:
  PACKAGE_REGISTRY_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/hookd
  LINUX_AMD64_BINARY: hookd-linux-amd64

cargo-build-amd64:
  extends: .cargo_build
  script:
    - rustup target add x86_64-unknown-linux-musl
    - cargo build --target x86_64-unknown-linux-musl --release
  variables:
    RUST_ADDITIONAL_PACKAGES: "musl-tools"
  artifacts:
    paths:
      - target/x86_64-unknown-linux-musl/release/

upload:
  stage: upload
  image: curlimages/curl:latest
  script:
    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file target/x86_64-unknown-linux-musl/release/hookd ${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/${LINUX_AMD64_BINARY}-${CI_COMMIT_TAG}'
  rules:
    - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/'

release:
  stage: release
  image: registry.gitlab.com/gitlab-org/release-cli:latest
  script:
    - |
      release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
      --assets-link "{\"name\":\"${LINUX_AMD64_BINARY}-${CI_COMMIT_TAG}\",\"url\":\"${PACKAGE_REGISTRY_URL}/${CI_COMMIT_TAG}/${LINUX_AMD64_BINARY}-${CI_COMMIT_TAG}\"}"
  rules:
    - if: '$CI_COMMIT_TAG && $CI_COMMIT_TAG =~ /^v\d+\.\d+\.\d+$/'