Skip to content

Commit

Permalink
Update go.yml
Browse files Browse the repository at this point in the history
  • Loading branch information
Arya-f4 authored Feb 6, 2025
1 parent 00e5d37 commit b1978c3
Showing 1 changed file with 58 additions and 16 deletions.
74 changes: 58 additions & 16 deletions .github/workflows/go.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,70 @@
# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go

name: Go
name: Build and Release

on:
push:
branches: [ "master" ]
branches:
- main
pull_request:
branches: [ "master" ]
branches:
- main
push:
tags:
- 'v*' # Runs when a new tag (e.g., v1.0.0) is pushed

jobs:

build:
name: Compile Go Binaries
runs-on: ubuntu-latest

strategy:
matrix:
os: [linux, windows, darwin] # Linux, Windows, macOS
arch: [amd64] # x86_64 architecture

steps:
- uses: actions/checkout@v4
- name: Checkout Repository
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.23'
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.21' # Change to your required Go version

- name: Build Binary
run: |
mkdir -p build
BIN_NAME="myprogram-${{ matrix.os }}-${{ matrix.arch }}"
[ "${{ matrix.os }}" == "windows" ] && BIN_NAME+=".exe"
GOOS=${{ matrix.os }} GOARCH=${{ matrix.arch }} CGO_ENABLED=0 go build -o build/$BIN_NAME main.go
- name: Upload Artifact to GitHub Actions
uses: actions/upload-artifact@v4
with:
name: myprogram-${{ matrix.os }}-${{ matrix.arch }}
path: build/*

release:
name: Publish Release
needs: build
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v4

- name: Build
run: go build -v ./...
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
path: build/

- name: Test
run: go test -v ./...
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: build/**/*
tag_name: ${{ github.ref_name }}
name: "Release ${{ github.ref_name }}"
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

0 comments on commit b1978c3

Please sign in to comment.