Skip to content

strip out cgo

strip out cgo #51

Workflow file for this run

name: Build and Package
on:
push:
branches:
- 'no-cgo'
permissions:
contents: write
defaults:
run:
shell: bash
env:
RELEASE: ${{ github.run_number }}
SENTRY: ${{ secrets.SENTRY_DSN }}
VERSION: '1.3.3c'
jobs:
build:
strategy:
matrix:
os: [ windows-latest ]
arch: [ amd64 ]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: WillAbides/setup-go-faster@v1.14.0
with:
go-version-file: 'go.mod'
- name: Prepare environment
env:
OS: ${{ matrix.os }}
ARCH: ${{ matrix.arch }}
run: |
# Add OS-specific flags
FLAGS="-trimpath"
if [[ "${{ matrix.os }}" == "macos-latest" ]]; then
FLAGS+=" -buildmode=pie"
fi
LDFLAGS="-s -w -X main.version=${VERSION} -X main.sentryDSN=${SENTRY}"
# if [ "${{ matrix.arch }}" = "windows-latest" ]; then
# LDFLAGS+=" -H=windowsgui"
# fi
# Send to env
echo "FLAGS=${FLAGS}" >> $GITHUB_ENV
echo "LDFLAGS=${LDFLAGS}" >> $GITHUB_ENV
- name: Build project
run: >-
env
CGO_ENABLED=0
GOARCH="${{ matrix.arch }}"
go build
-o bin/pinnacle
${FLAGS} -ldflags="${LDFLAGS}"
pinnacle/src
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: pinnacle-${{ matrix.os }}-${{ matrix.arch }}
path: bin/pinnacle
retention-days: 1
package_windows:
needs: build
strategy:
matrix:
arch: [ amd64, arm64 ]
exclude:
- arch: arm64
runs-on: windows-latest
steps:
- name: Checkout .iss files
uses: actions/checkout@v4
with:
sparse-checkout: |
pkg/windows
- name: Download binaries
uses: actions/download-artifact@v4
with:
name: pinnacle-windows-latest-${{ matrix.arch }}
path: bin/windows
- name: Set env variables
run: |
if [ "${{ matrix.arch }}" = "amd64" ]; then
ARCH_NAME="x86_64"
elif [ "${{ matrix.arch }}" = "arm64" ]; then
ARCH_NAME="ARM64"
else
ARCH_NAME="???"
fi
echo "ARCH_NAME=${ARCH_NAME}" >> $GITHUB_ENV
- name: Prepare for packaging
run: |
# Set variable for .iss file path
ISS_FILE="pkg/windows/iss/PackagePinnacle-${{ matrix.arch }}.iss"
# Edit versions in iss file
sed -i "s/#define MyAppVersion \"1.0.0\"/#define MyAppVersion \"${VERSION}\"/" "$ISS_FILE"
# Rename binary
mv "bin/windows/pinnacle" "bin/windows/pinnacle-windows-${{ matrix.arch }}.exe"
# Export env variable
echo "ISS_FILE=${ISS_FILE}" >> $GITHUB_ENV
- name: Package with Inno Setup
run: |
iscc.exe "$ISS_FILE"
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: AlpineClientSetup-${{ env.VERSION }}-${{ env.ARCH_NAME }}.exe
path: build/out/AlpineClientSetup-${{ env.VERSION }}-${{ env.ARCH_NAME }}.exe
retention-days: 1