From 41eb42c3697b37c97c537939556fbef26a6072c0 Mon Sep 17 00:00:00 2001
From: Mael GRAMAIN <mael@gnous.eu>
Date: Sun, 13 Dec 2020 20:21:00 -0400
Subject: [PATCH] New Github actions

---
 .github/workflows/go.yml      | 38 +++++++++++++-------
 .github/workflows/release.yml | 65 +++++++++++++++++++++++++++++++++++
 2 files changed, 90 insertions(+), 13 deletions(-)
 create mode 100644 .github/workflows/release.yml

diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml
index 0dd1d73..0fd786e 100644
--- a/.github/workflows/go.yml
+++ b/.github/workflows/go.yml
@@ -2,12 +2,11 @@ name: Go
 
 on:
   push:
-    branches: [ main ]
+    branches: [ master ]
   pull_request:
-    branches: [ main ]
+    branches: [ master ]
 
 jobs:
-
   build:
     name: Build
     runs-on: ubuntu-latest
@@ -20,14 +19,27 @@ jobs:
 
     - name: Check out code into the Go module directory
       uses: actions/checkout@v2
-
-    - name: Get dependencies
-      run: |
-        go get -v -t -d ./...
-        if [ -f Gopkg.toml ]; then
-            curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
-            dep ensure
-        fi
-
+      with:
+        fetch-depth: '0'
+      
     - name: Build
-      run: make compile 
+      run: |
+        GOOS=linux make build
+        GOOS=darwin make build
+        GOOS=windows EXTENSION=.exe make build
+          
+    - name: Install fpm
+      run: |
+        sudo apt-get update
+        sudo apt-get install -y rpm ruby ruby-dev
+        sudo gem install fpm
+        
+    - name: Package
+      run: make package-deb package-rpm
+
+    - name: Upload Artifact
+      uses: actions/upload-artifact@v2
+      with:
+        name: dist
+        path: dist/*
+        retention-days: 14
\ No newline at end of file
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..5890304
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,65 @@
+name: Release
+
+on:
+  push:
+    tags:
+      - 'v*'
+
+jobs:
+  build:
+    name: Build
+    runs-on: ubuntu-latest
+    steps:
+
+    - name: Set up Go 1.x
+      uses: actions/setup-go@v2
+      with:
+        go-version: ^1.14
+
+    - name: Check out code into the Go module directory
+      uses: actions/checkout@v2
+      with:
+        fetch-depth: '0'
+      
+    - name: Build
+      run: |
+        GOOS=linux make build
+        GOOS=darwin make build
+        GOOS=windows EXTENSION=.exe make build
+          
+    - name: Install fpm
+      run: |
+        sudo apt-get update
+        sudo apt-get install -y rpm ruby ruby-dev
+        sudo gem install fpm
+        
+    - name: Package
+      run: make package-deb package-rpm
+
+    - name: Create Release
+      id: create_release
+      uses: actions/create-release@v1
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      with:
+        tag_name: ${{ github.ref }}
+        release_name: Release ${{ github.ref }}
+        draft: false
+        prerelease: false
+        
+    - name: Upload Release Asset
+      uses: actions/github-script@v2
+      with:
+        github-token: ${{secrets.GITHUB_TOKEN}}
+        script: |
+          const fs = require('fs').promises;
+          const upload_url = '${{ steps.create_release.outputs.upload_url }}';
+          for (let file of await fs.readdir('./dist')) {
+            console.log('uploading', file);
+            await github.repos.uploadReleaseAsset({
+              url: upload_url,
+              name: file,
+              data: await fs.readFile(`./dist/${file}`)
+            }); 
+          }
+ 
\ No newline at end of file