Compare commits
	
		
			4 Commits
		
	
	
		
			v0.3
			...
			8a36588c62
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 8a36588c62 | |||
| 90ce7edd28 | |||
| 11bed9c8b1 | |||
| 2fe228858f | 
							
								
								
									
										53
									
								
								.gitea/workflows/release.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								.gitea/workflows/release.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,53 @@
 | 
				
			|||||||
 | 
					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 build -ldflags "-s -w -X main.Version=$VERSION" -o myapp ./cmd/app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      # 4. Install the tea CLI
 | 
				
			||||||
 | 
					      - name: Install tea CLI
 | 
				
			||||||
 | 
					        run: go install gitea.com/gitea/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 ./myapp
 | 
				
			||||||
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -2,6 +2,7 @@
 | 
				
			|||||||
**/go.sum
 | 
					**/go.sum
 | 
				
			||||||
# Ignore the binary output
 | 
					# Ignore the binary output
 | 
				
			||||||
lab-ca*
 | 
					lab-ca*
 | 
				
			||||||
 | 
					build
 | 
				
			||||||
# Ignore any certificate files
 | 
					# Ignore any certificate files
 | 
				
			||||||
*.pem
 | 
					*.pem
 | 
				
			||||||
# Ignore CA configuration and certificate definitions.
 | 
					# Ignore CA configuration and certificate definitions.
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								build.sh
									
									
									
									
									
								
							@@ -6,4 +6,17 @@ if [ $? -eq 0 ]; then
 | 
				
			|||||||
else
 | 
					else
 | 
				
			||||||
  VERSION="dev"
 | 
					  VERSION="dev"
 | 
				
			||||||
fi
 | 
					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"
 | 
						"github.com/spf13/cobra"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var Version = "dev"
 | 
					var Version = ""
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Global flags available to all commands
 | 
					// Global flags available to all commands
 | 
				
			||||||
var overwrite bool
 | 
					var overwrite bool
 | 
				
			||||||
@@ -225,7 +225,7 @@ func main() {
 | 
				
			|||||||
		Use:   "version",
 | 
							Use:   "version",
 | 
				
			||||||
		Short: "Show version information",
 | 
							Short: "Show version information",
 | 
				
			||||||
		Run: func(cmd *cobra.Command, args []string) {
 | 
							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)
 | 
						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() {
 | 
					func printMainHelp() {
 | 
				
			||||||
	fmt.Printf("lab-ca - Certificate Authority Utility\n")
 | 
						fmt.Printf("lab-ca - Certificate Authority Utility\n")
 | 
				
			||||||
	fmt.Printf("Version: %s\n", Version)
 | 
						fmt.Printf("Version: %s\n", getVersionDescription())
 | 
				
			||||||
	fmt.Println()
 | 
						fmt.Println()
 | 
				
			||||||
	fmt.Println("Usage:")
 | 
						fmt.Println("Usage:")
 | 
				
			||||||
	fmt.Println("  lab-ca <command> [options]")
 | 
						fmt.Println("  lab-ca <command> [options]")
 | 
				
			||||||
	fmt.Println()
 | 
						fmt.Println()
 | 
				
			||||||
	fmt.Println("Available commands:")
 | 
						fmt.Println("Available commands:")
 | 
				
			||||||
	fmt.Println("  initca     Generate a new CA certificate and key")
 | 
						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("  issue      Issue a new certificate")
 | 
				
			||||||
	fmt.Println("  provision  Provision certificates from a batch file (HCL)")
 | 
						fmt.Println("  provision  Provision certificates from a batch file (HCL)")
 | 
				
			||||||
	fmt.Println("  revoke     Revoke a certificate by name or serial number")
 | 
						fmt.Println("  revoke     Revoke a certificate by name or serial number")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,7 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
GREEN='\033[0;32m'
 | 
					GREEN='\033[0;32m'
 | 
				
			||||||
NC='\033[0m' # No Color
 | 
					NC='\033[0m' # No Color
 | 
				
			||||||
LAB_CA="./lab-ca"
 | 
					LAB_CA="build/lab-ca"
 | 
				
			||||||
PROVISION_CONFIG="examples/example-certificates.hcl"
 | 
					PROVISION_CONFIG="examples/example-certificates.hcl"
 | 
				
			||||||
# Build and install
 | 
					# Build and install
 | 
				
			||||||
# Build script for lab-ca with version injection from git tag
 | 
					# Build script for lab-ca with version injection from git tag
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user