diff --git a/.github/workflows/goreleaser.yml b/.github/workflows/goreleaser.yml new file mode 100644 index 0000000..d02edb1 --- /dev/null +++ b/.github/workflows/goreleaser.yml @@ -0,0 +1,29 @@ +name: goreleaser + +on: + push: + tags: + - 'v*.*.*' + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Set up Go + uses: actions/setup-go@v2 + with: + go-version: 1.18 + - name: Test + run: go test ./... + - name: Run GoReleaser + uses: goreleaser/goreleaser-action@v2 + with: + distribution: goreleaser + version: latest + args: release --rm-dist + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index fe5fa7b..9895af1 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ *.jpg *.svg !output/* -packages/ \ No newline at end of file +packages/ +/dist \ No newline at end of file diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..901b095 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,47 @@ +project_name: triangle +builds: + - + binary: "triangle" + dir: cmd/triangle + env: + - CGO_ENABLED=0 + goos: + - linux + - windows + - darwin + goarch: + - amd64 + - arm + - arm64 + goarm: + - "6" + - "7" +archives: + - + format_overrides: + - goos: windows + format: zip +checksum: + name_template: 'checksums.txt' +snapshot: + name_template: "{{ .Tag }}-next" +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' +nfpms: + - + vendor: Endre Simo + homepage: https://github.com/esimov + maintainer: Endre Simo + description: NA + license: MIT + formats: + - apk + - deb + - rpm + release: 1 + section: default + priority: extra diff --git a/Makefile b/Makefile deleted file mode 100644 index 00d33b6..0000000 --- a/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: - @./build.sh -clean: - @rm -f triangle -install: all - @cp triangle /usr/local/bin -uninstall: - @rm -f /usr/local/bin/triangle -package: - @NOCOPY=1 ./build.sh package \ No newline at end of file diff --git a/build.sh b/build.sh deleted file mode 100755 index 3071e01..0000000 --- a/build.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -set -e - -VERSION="2.0.0" -PROTECTED_MODE="no" - -export GO15VENDOREXPERIMENT=1 - -cd $(dirname "${BASH_SOURCE[0]}") -OD="$(pwd)" -WD=$OD - -package() { - echo Packaging $1 Binary - bdir=triangle-${VERSION}-$2-$3 - rm -rf packages/$bdir && mkdir -p packages/$bdir - GOOS=$2 GOARCH=$3 ./build.sh - if [ "$2" == "windows" ]; then - mv triangle packages/$bdir/triangle.exe - else - mv triangle packages/$bdir - fi - cp README.md packages/$bdir - cd packages - if [ "$2" == "linux" ]; then - tar -zcf $bdir.tar.gz $bdir - else - zip -r -q $bdir.zip $bdir - fi - rm -rf $bdir - cd .. -} - -if [ "$1" == "package" ]; then - rm -rf packages/ - package "Windows" "windows" "amd64" - package "Mac" "darwin" "amd64" - package "Linux" "linux" "amd64" - package "FreeBSD" "freebsd" "amd64" - exit -fi - -# temp directory for storing isolated environment. -TMP="$(mktemp -d -t sdb.XXXX)" -rmtemp() { - rm -rf "$TMP" -} -trap rmtemp EXIT - -if [ "$NOCOPY" != "1" ]; then - # copy all files to an isloated directory. - WD="$TMP/src/github.com/esimov/triangle" - export GOPATH="$TMP" - for file in `find . -type f`; do - # TODO: use .gitignore to ignore, or possibly just use git to determine the file list. - if [[ "$file" != "." && "$file" != ./.git* && "$file" != ./triangle ]]; then - mkdir -p "$WD/$(dirname "${file}")" - cp -P "$file" "$WD/$(dirname "${file}")" - fi - done - cd $WD -fi - -# build and store objects into original directory. -go build -ldflags "-X main.version=$VERSION" -o "$OD/triangle" cmd/triangle/*.go \ No newline at end of file