github.com/freiheit-com/kuberpult@v1.24.2-0.20240328135542-315d5630abe6/services/cd-service/Earthfile (about)

     1  VERSION --use-function-keyword 0.7
     2  IMPORT ../../infrastructure/earthly/go AS go-build
     3  
     4  LOCALLY
     5  ARG --global service=$(basename $PWD)
     6  ARG --global src_files=$(find pkg -type f ! -name "*_test.go")
     7  ARG --global cgo_enabled=1
     8  
     9  deps:
    10      FROM ../../+deps
    11      DO go-build+DEPS --service=$service --src_files=$src_files
    12      WORKDIR services/$service
    13  
    14  artifacts:
    15      FROM +deps
    16      SAVE ARTIFACT /etc/ssl/certs/ca-certificates.crt
    17      SAVE ARTIFACT /usr/share/zoneinfo
    18      SAVE ARTIFACT pkg
    19  
    20  compile:
    21      FROM +deps
    22      ARG USERARCH
    23      
    24      DO go-build+COMPILE --cgo_enabled=$cgo_enabled
    25  
    26  unit-test:
    27      FROM +compile
    28      ARG GO_TEST_ARGS
    29      DO go-build+UNIT_TEST --GO_TEST_ARGS=$GO_TEST_ARGS
    30  
    31  lint:
    32      FROM +deps
    33      DO go-build+LINT --skip_lint_errors=false
    34  
    35  docker:
    36      FROM alpine:3.18
    37      ARG UID=1000
    38      ARG registry="europe-west3-docker.pkg.dev/fdc-public-docker-registry/kuberpult"
    39      ARG tag="local"
    40      ARG use_datadog=false
    41      COPY gitconfig /etc/gitconfig
    42      DO go-build+DOCKER --UID=$UID --image_tag=$registry/kuberpult-$service:$tag --cgo_enabled=$cgo_enabled --entry_point=/main --service=$service --use_datadog=$use_datadog
    43  
    44  release:
    45      FROM +docker
    46      ARG registry="europe-west3-docker.pkg.dev/fdc-public-docker-registry/kuberpult"
    47      ARG --required tag
    48      DO go-build+RELEASE --image_tag=$registry/kuberpult-$service:$tag
    49  
    50  build-pr:
    51      ARG --required tag
    52      ARG registry="ghcr.io/freiheit-com/kuberpult"
    53      ARG mirror="false"
    54      ARG mirror_registry="europe-west3-docker.pkg.dev/fdc-public-docker-registry/kuberpult"
    55  
    56      DO +BUILD_ALL --tag=$tag --registry=$registry --mirror=$mirror  --mirror_registry=$mirror_registry
    57  
    58  build-main:
    59      ARG --required tag
    60      ARG registry="ghcr.io/freiheit-com/kuberpult"
    61      ARG mirror="false"
    62      ARG mirror_registry="europe-west3-docker.pkg.dev/fdc-public-docker-registry/kuberpult"
    63  
    64      DO +BUILD_ALL --tag=$tag --registry=$registry --mirror=$mirror  --mirror_registry=$mirror_registry --dd_release=true
    65  
    66  BUILD_ALL:
    67      FUNCTION
    68      ARG --required tag
    69      ARG --required registry
    70      ARG mirror_registry="europe-west3-docker.pkg.dev/fdc-public-docker-registry/kuberpult"
    71      ARG mirror=""
    72      ARG dd_release=false
    73  
    74      FROM +deps
    75      BUILD +lint 
    76      BUILD +unit-test 
    77      BUILD +release --registry=$registry --tag=$tag
    78      IF [ "$mirror" = "true" ]
    79          BUILD +release --registry=$mirror_registry --tag=$tag
    80      END
    81      IF [ "$dd_release" = "true" ]
    82          BUILD +release --registry=$mirror_registry --tag="${tag}-datadog" --use_datadog=true
    83      END