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