Skip to content

Update documentation #24

Update documentation

Update documentation #24

Workflow file for this run

name: "Build and release"
on:
push:
tags:
- "v*"
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Linux deps
run: |
sudo apt update
sudo apt install -y build-essential pkg-config libpcsclite-dev libgl1-mesa-dev xorg-dev
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install Fyne
run: go install fyne.io/fyne/v2/cmd/fyne@latest
- name: Test
run: go test ./...
buildLinux:
runs-on: ubuntu-latest
needs: [test]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Linux deps
run: |
sudo apt update
sudo apt install -y build-essential pkg-config libpcsclite-dev libgl1-mesa-dev xorg-dev
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install Fyne
run: go install fyne.io/fyne/v2/cmd/fyne@latest
- name: Generate version file
run: go run script/generateVersion.go
- name: Build GUI version
run: |
fyne package -os linux
mv 'Bas Celik.tar.xz' bas-celik.linux.amd64.tar.xz
- name: Upload GUI version
uses: actions/upload-artifact@v4
with:
name: linux-build-artifact
path: bas-celik.linux.amd64.tar.xz
- name: Build CLI version
run: |
echo -n "cli" >> assets/version
go build -tags "cli" -ldflags "-s -w" .
mv bas-celik bas-celik-cli.linux.amd64
- name: Upload CLI version
uses: actions/upload-artifact@v4
with:
name: linux-cli-build-artifact
path: bas-celik-cli.linux.amd64
buildWindows:
runs-on: windows-latest
needs: [test]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install Fyne
run: go install fyne.io/fyne/v2/cmd/fyne@latest
- name: Generate version file
run: go run script\generateVersion.go
- name: Build
run: |
fyne package -os windows
mv 'Bas Celik.exe' bas-celik.windows.amd64.exe
- name: Upload executables
uses: actions/upload-artifact@v4
with:
name: windows-build-artifact
path: bas-celik.windows.amd64.exe
buildMacOS:
runs-on: macos-latest
needs: [test]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: "stable"
- name: Install Fyne
run: go install fyne.io/fyne/v2/cmd/fyne@latest
- name: Generate version file
run: go run script/generateVersion.go
- name: Build
run: |
fyne package -os darwin
zip -r bas-celik.macos.amd64.app.zip 'Bas Celik.app'
- name: Upload executables
uses: actions/upload-artifact@v4
with:
name: macos-build-artifact
path: bas-celik.macos.amd64.app.zip
release:
runs-on: ubuntu-latest
needs: [buildLinux, buildWindows, buildMacOS]
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/download-artifact@v4
- name: Move files
run: |
mv linux-build-artifact/* .
mv linux-cli-build-artifact/* .
mv windows-build-artifact/* .
mv macos-build-artifact/* .
- name: Generate release body
run: |
touch changelog.md
git tag -l --format='%(contents)' ${{github.ref_name}} >> changelog.md
echo '' >> changelog.md
echo '```' >> changelog.md
sha256sum bas-celik.linux.amd64.tar.xz >> changelog.md
echo '```' >> changelog.md
echo '' >> changelog.md
echo '```' >> changelog.md
sha256sum bas-celik-cli.linux.amd64 >> changelog.md
echo '```' >> changelog.md
echo '' >> changelog.md
echo '```' >> changelog.md
sha256sum bas-celik.windows.amd64.exe >> changelog.md
echo '```' >> changelog.md
echo '' >> changelog.md
echo '```' >> changelog.md
sha256sum bas-celik.macos.amd64.app.zip >> changelog.md
echo '```' >> changelog.md
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
bas-celik.linux.amd64.tar.xz
bas-celik-cli.linux.amd64
bas-celik.windows.amd64.exe
bas-celik.macos.amd64.app.zip
body_path: changelog.md
tag_name: ${{github.ref_name}}