Skip to content

ci(windows): Compress Windows builds with zip instead of tar #212

ci(windows): Compress Windows builds with zip instead of tar

ci(windows): Compress Windows builds with zip instead of tar #212

Workflow file for this run

name: Build
on: push
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Install systray dependencies
run: |
sudo apt-get update
sudo apt-get install gcc libgtk-3-dev libayatana-appindicator3-dev
- name: Lint
uses: golangci/golangci-lint-action@v4
with:
args: --timeout=5m
skip-build-cache: true
skip-pkg-cache: true
test:
name: Test
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Install systray dependencies
run: |
sudo apt-get update
sudo apt-get install gcc libgtk-3-dev libayatana-appindicator3-dev
- name: Test
env:
TZ: America/Chicago
run: go test ./...
build-linux:
name: Build (linux)
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Install systray dependencies
run: |
sudo apt-get update
sudo apt-get install gcc libgtk-3-dev libayatana-appindicator3-dev
- name: Build
run: go build -ldflags='-w -s' -trimpath -o dist/nightscout-menu-bar-amd64
- name: Compress
run: tar -cvf nightscout-menu-bar_linux_amd64.tar -C dist .
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: nightscout-menu-bar_linux_amd64
path: nightscout-menu-bar_linux_amd64.tar
build-windows:
name: Build (windows)
runs-on: windows-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Build
shell: bash
run: ./hack/build-windows.sh
- name: Compress
working-directory: dist
shell: powershell
run: Compress-Archive -Path * -Destination ../nightscout-menu-bar_windows_amd64.zip
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: nightscout-menu-bar_windows_amd64
path: nightscout-menu-bar_windows_amd64.zip
build-darwin:
name: Build (darwin)
runs-on: macos-13
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Build
run: ./hack/build-darwin.sh
- name: Compress
run: tar -cvf nightscout-menu-bar_darwin.tar -C dist .
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: nightscout-menu-bar_darwin
path: nightscout-menu-bar_darwin.tar
release:
name: Release
if: startsWith(github.ref, 'refs/tags/')
needs: [lint, test, build-windows, build-darwin, build-linux]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
with:
pattern: nightscout-menu-bar_*
path: dist
merge-multiple: true
- name: Generate Changelog
id: changelog
uses: gabe565/changelog-generator@v0
- name: Release
uses: softprops/action-gh-release@v2
with:
body: ${{ steps.changelog.outputs.changelog }}
files: |
dist/nightscout-menu-bar_*