Skip to content

fix: handle error from loading environment variables in Init function #3

fix: handle error from loading environment variables in Init function

fix: handle error from loading environment variables in Init function #3

Workflow file for this run

name: Release
on:
push:
tags:
- "v*.*.*"
jobs:
lint-and-test:
name: Lint and test
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Download dependencies
run: go mod download
- name: Run go vet
run: go vet ./...
- name: Run go fmt check
run: |
if [ "$(gofmt -s -l . | wc -l)" -gt 0 ]; then
echo "The following files are not formatted:"
gofmt -s -l .
exit 1
fi
- name: Run tests
run: go test -v ./...
- name: Build check
run: go build -v .
release-binaries:
name: Generate cross-platform builds and create release
runs-on: ubuntu-latest
needs: lint-and-test
permissions:
contents: write
steps:
- name: Checkout the repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for version detection
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.24"
- name: Cache Go modules
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: Generate build files using build script
run: |
chmod +x scripts/build.sh
./scripts/build.sh
- name: Create draft release and upload assets
uses: softprops/action-gh-release@v2
with:
draft: true
files: builds/*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-and-push-docker-image:
runs-on: ubuntu-latest
needs: lint-and-test
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry (GHCR)
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract semver version
id: extract_version
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Build and push Docker image with GHA cache
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: ghcr.io/${{ github.repository_owner }}/pulse-bridge:${{ steps.extract_version.outputs.VERSION }}
cache-from: type=gha
cache-to: type=gha,mode=max