diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..98100c0 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,51 @@ +--- +kind: pipeline +type: docker +name: default-linux-amd64 + +steps: + - name: build + image: golang + commands: + - ./ci-build.sh build + environment: + GOOS: linux + GOARCH: amd64 + - name: release + image: plugins/gitea-release + settings: + base_url: https://git.paulbsd.com + api_key: + from_secret: gitea_token + files: "*.tar.gz" + checksum: + - sha256 + - sha512 + when: + event: tag + +--- +kind: pipeline +type: docker +name: default-linux-arm64 + +steps: + - name: build + image: golang + commands: + - ./ci-build.sh build + environment: + GOOS: linux + GOARCH: arm64 + - name: release + image: plugins/gitea-release + settings: + base_url: https://git.paulbsd.com + api_key: + from_secret: gitea_token + files: "*.tar.gz" + checksum: + - sha256 + - sha512 + when: + event: tag diff --git a/ci-build.sh b/ci-build.sh new file mode 100755 index 0000000..1ddfb37 --- /dev/null +++ b/ci-build.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +PROJECTNAME=weather +RELEASENAME=${PROJECTNAME} +VERSION="0" + +GOOPTIONS="-mod=vendor" +SRCFILES=cmd/weather/*.go + +build() { + if [[ ! -z $DRONE_TAG ]] + then + VERSION=$DRONE_TAG + elif [[ ! -z $DRONE_TAG ]] + then + VERSION=$DRONE_COMMIT + fi + + if [[ ! -z $VERSION && ! -z $GOOS && ! -z $GOARCH ]] + then + RELEASENAME=${PROJECTNAME}-${VERSION}-${GOOS}-${GOARCH} + fi + go build -o ${PROJECTNAME} ${GOOPTIONS} ${SRCFILES} + if [[ ! -z $DRONE_TAG ]] + then + tar -czvf ${RELEASENAME}.tar.gz ${PROJECTNAME} + fi + rm ${PROJECTNAME} +} + +clean() { + rm -rf $RELEASEDIR +} + +case $1 in + "build") + build + ;; + "clean") + clean + ;; + *) + ;; +esac