version := "1.0.0"

default:
  @just --choose

test:
    go test -v ./...

lint:
    go vet ./...
    staticcheck ./...
    revive ./...

[working-directory: 'contrib/charts/alertmanager-ntfy']
lint-helm:
    helm lint

gofmt:
    gofmt -l .
    @test -z $(gofmt -l .)

build:
    go build

[group('release')]
release:
    sed -i -E 's/^appVersion: "?([0-9]+.[0-9]+.[0-9]+.*)"?/appVersion: "{{version}}"/' contrib/charts/alertmanager-ntfy/Chart.yaml
    just release-docker
    just release-helm

[group('release')]
release-docker:
    docker buildx build --platform linux/amd64,linux/arm64 -f docker/Dockerfile --build-arg VERSION={{version}} -t codeberg.org/xenrox/ntfy-alertmanager:{{version}} -t codeberg.org/xenrox/ntfy-alertmanager:latest --push .

    docker buildx build --platform linux/amd64,linux/arm64 -f docker/Dockerfile --build-arg VERSION={{version}} -t code.xenrox.net/xenrox/ntfy-alertmanager:{{version}} -t code.xenrox.net/xenrox/ntfy-alertmanager:latest --push .

    docker buildx build --platform linux/amd64,linux/arm64 -f docker/Dockerfile --build-arg VERSION={{version}} -t xenrox/ntfy-alertmanager:{{version}} -t xenrox/ntfy-alertmanager:latest --push .

[group('release')]
release-helm:
    #!/usr/bin/env bash
    set -euxo pipefail
    helmVersion=$(grep -Po '^version:\s*"?\K.+?(?=")' contrib/charts/alertmanager-ntfy/Chart.yaml)
    rm alertmanager-ntfy-*.tgz
    helm package contrib/charts/alertmanager-ntfy
    helm push alertmanager-ntfy-${helmVersion}.tgz oci://codeberg.org/xenrox/ntfy-alertmanager

upgrade-deps:
    go get -u ./...
    go mod tidy

@run:
    go run . --config ./devconfig.scfg

@curl:
    curl --user "user:pass" -X 'POST' \
        '127.0.0.1:8080' \
        -H 'Content-Type: application/json' \
        -d @contrib/test_payload.json

