Compare commits
	
		
			7 Commits
		
	
	
		
			v0.3.0
			...
			eb5c5c0e43
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| eb5c5c0e43 | |||
| 8181ac8287 | |||
| 3fe908226d | |||
| 8a36588c62 | |||
| 90ce7edd28 | |||
| 11bed9c8b1 | |||
| 2fe228858f | 
							
								
								
									
										54
									
								
								.gitea/workflows/release.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								.gitea/workflows/release.yml
									
									
									
									
									
										Normal 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
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -2,6 +2,7 @@
 | 
			
		||||
**/go.sum
 | 
			
		||||
# Ignore the binary output
 | 
			
		||||
lab-ca*
 | 
			
		||||
build
 | 
			
		||||
# Ignore any certificate files
 | 
			
		||||
*.pem
 | 
			
		||||
# Ignore CA configuration and certificate definitions.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										15
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								build.sh
									
									
									
									
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main.go
									
									
									
									
									
								
							@@ -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,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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user