7 Commits

Author SHA1 Message Date
slawek eb5c5c0e43 Updated tea repository name. 2025-07-30 09:01:00 +02:00
slawek 8181ac8287 Added missing go mod tidy. 2025-07-30 08:58:58 +02:00
slawek 3fe908226d Fixed unchange placeholder names. 2025-07-30 08:56:17 +02:00
slawek 8a36588c62 Added manual trigger. 2025-07-30 08:49:49 +02:00
slawek 90ce7edd28 Fixed incorrect workflow directory name. 2025-07-30 08:47:09 +02:00
slawek 11bed9c8b1 Added release workflow. 2025-07-30 08:37:21 +02:00
slawek 2fe228858f Update build process and version embedding. 2025-07-30 08:17:15 +02:00
5 changed files with 81 additions and 5 deletions
+54
View File
@@ -0,0 +1,54 @@
name: Release
on:
workflow_dispatch:
push:
tags:
- 'v*.*.*'
jobs:
release:
runs-on: ubuntu-latest
steps:
# 1. Checkout source code
- name: Checkout
uses: actions/checkout@v4
# 2. Setup Go environment
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.24.5'
# 3. Build binary with Version injected
- name: Build binary
run: |
VERSION=${GITEA_REF_NAME}
echo "Building version $VERSION"
go mod tidy
go build -ldflags "-s -w -X main.Version=$VERSION" -o lab-ca .
# 4. Install the tea CLI
- name: Install tea CLI
run: go install code.gitea.io/tea@latest
# 5. Authenticate tea CLI
- name: Login to Gitea
run: |
tea login add --name ci --url $GITEA_URL --token $GITEA_TOKEN
env:
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
GITEA_URL: ${{ secrets.GITEA_URL }}
# 6. Create or update release
- name: Create or update release
run: |
tea release create $GITEA_REF_NAME \
--title "$GITEA_REF_NAME" \
--note "Automated release for $GITEA_REF_NAME" || \
echo "Release already exists, skipping create."
# 7. Upload binary to the release
- name: Upload binary
run: tea release upload $GITEA_REF_NAME lab-ca
+1
View File
@@ -2,6 +2,7 @@
**/go.sum
# Ignore the binary output
lab-ca*
build
# Ignore any certificate files
*.pem
# Ignore CA configuration and certificate definitions.
+14 -1
View File
@@ -6,4 +6,17 @@ if [ $? -eq 0 ]; then
else
VERSION="dev"
fi
go build -ldflags "-X main.Version=$VERSION" -o lab-ca
if echo $VERSION | grep -q 'dirty$'; then
echo "Building in development mode, output directory is set to 'build'."
OUTPUT_DIR=build
# Make sure the output directory exists, create it if it is not
mkdir -p $OUTPUT_DIR
else
echo "Building with version: $VERSION"
OUTPUT_DIR=$GOHOME/bin
fi
# Build the Lab CA binary with version information
go build -ldflags "-X main.Version=$VERSION" -o $OUTPUT_DIR/lab-ca
+11 -3
View File
@@ -7,7 +7,7 @@ import (
"github.com/spf13/cobra"
)
var Version = "dev"
var Version = ""
// Global flags available to all commands
var overwrite bool
@@ -225,7 +225,7 @@ func main() {
Use: "version",
Short: "Show version information",
Run: func(cmd *cobra.Command, args []string) {
fmt.Printf("lab-ca version: %s\n", Version)
fmt.Printf("lab-ca version: %s\n", getVersionDescription())
},
}
rootCmd.AddCommand(versionCmd)
@@ -235,15 +235,23 @@ func main() {
}
}
func getVersionDescription() string {
if Version == "" {
return "no version information was compiled in"
}
return Version
}
func printMainHelp() {
fmt.Printf("lab-ca - Certificate Authority Utility\n")
fmt.Printf("Version: %s\n", Version)
fmt.Printf("Version: %s\n", getVersionDescription())
fmt.Println()
fmt.Println("Usage:")
fmt.Println(" lab-ca <command> [options]")
fmt.Println()
fmt.Println("Available commands:")
fmt.Println(" initca Generate a new CA certificate and key")
fmt.Println(" list List issued certificates")
fmt.Println(" issue Issue a new certificate")
fmt.Println(" provision Provision certificates from a batch file (HCL)")
fmt.Println(" revoke Revoke a certificate by name or serial number")
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/bash
GREEN='\033[0;32m'
NC='\033[0m' # No Color
LAB_CA="./lab-ca"
LAB_CA="build/lab-ca"
PROVISION_CONFIG="examples/example-certificates.hcl"
# Build and install
# Build script for lab-ca with version injection from git tag