This commit is contained in:
		
							
								
								
									
										76
									
								
								.gitea/workflows/ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								.gitea/workflows/ci.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
name: Build and Publish
 | 
			
		||||
on:
 | 
			
		||||
  push:
 | 
			
		||||
    tags: ["v*"]
 | 
			
		||||
 | 
			
		||||
env:
 | 
			
		||||
  PACKAGE_NAME: git-project-manager
 | 
			
		||||
  BINARY_PATH: bin
 | 
			
		||||
  BINARY_NAME: git-project-manager
 | 
			
		||||
  GO_MOD_PATH: gitea.libretechconsulting.com/rmcguire/git-project-manager
 | 
			
		||||
  GO_GIT_HOST: gitea.libretechconsulting.com
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  release:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout Code
 | 
			
		||||
        uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Set up Go Environment
 | 
			
		||||
        uses: actions/setup-go@v4
 | 
			
		||||
        with:
 | 
			
		||||
          go-version: '1.23'
 | 
			
		||||
 | 
			
		||||
      - name: Build Binary
 | 
			
		||||
        run: make all
 | 
			
		||||
 | 
			
		||||
      - name: Upload Binary to Generic Registry
 | 
			
		||||
        env:
 | 
			
		||||
          API_TOKEN: ${{ secrets.API_TOKEN }}
 | 
			
		||||
        run: |
 | 
			
		||||
          echo "Pushing ./$BINARY_PATH/$BINARY_NAME to ${GITHUB_SERVER_URL} packages for ${GITHUB_REPOSITORY_OWNER} as ${PACKAGE_NAME}@${{ github.ref_name }}"
 | 
			
		||||
          if [ -f ./${BINARY_PATH}/${BINARY_NAME} ]; then
 | 
			
		||||
            curl -X PUT \
 | 
			
		||||
              -H "Authorization: token ${API_TOKEN}" \
 | 
			
		||||
              --upload-file ./${BINARY_PATH}/${BINARY_NAME} \
 | 
			
		||||
              "${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/generic/${PACKAGE_NAME}/${{ github.ref_name }}/${BINARY_NAME}"
 | 
			
		||||
          else
 | 
			
		||||
            echo "Error: Binary ./${BINARY_PATH}/${BINARY_NAME} not found."
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
 | 
			
		||||
      - name: Generate and Upload Package to Go Registry
 | 
			
		||||
        env:
 | 
			
		||||
          GOPRIVATE: gitea.libretechconsulting.com/*
 | 
			
		||||
          API_TOKEN: ${{ secrets.API_TOKEN }} # Replace with a Gitea token stored in repository secrets
 | 
			
		||||
        run: |
 | 
			
		||||
          # Set up netrc for Gitea
 | 
			
		||||
          echo "machine ${GO_GIT_HOST} login ${GITHUB_REPOSITORY_OWNER} password ${API_TOKEN}" > ~/.netrc
 | 
			
		||||
          chmod 0600 ~/.netrc
 | 
			
		||||
 | 
			
		||||
          # Package and get mod info
 | 
			
		||||
          go mod download -x --json ${GO_MOD_PATH}@${{ github.ref_name }} | tee package.json
 | 
			
		||||
          if [[ $? -ne 0 ]]; then
 | 
			
		||||
            echo "Failed to generage go package archive for ${GO_MOD_PATH}@${{ github.ref_name }}"
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
          ZIPFILE=$( jq .Zip < package.json | tr -d '"' )
 | 
			
		||||
 | 
			
		||||
          # Upload to Gitea go registry
 | 
			
		||||
          echo "Uploading go package ${ZIPFILE}"
 | 
			
		||||
          curl -X PUT \
 | 
			
		||||
            -H "Authorization: token ${API_TOKEN}" \
 | 
			
		||||
            --upload-file ${ZIPFILE} \
 | 
			
		||||
            "${GITHUB_SERVER_URL}/api/packages/${GITHUB_REPOSITORY_OWNER}/go/upload"
 | 
			
		||||
 | 
			
		||||
      - name: Run Go List
 | 
			
		||||
        env:
 | 
			
		||||
          TAG_NAME: ${{ github.ref_name }} # Use the pushed tag name
 | 
			
		||||
        run: |
 | 
			
		||||
          if [[ "$TAG_NAME" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
 | 
			
		||||
            GOPROXY=proxy.golang.org go list -m gitea.libretechconsulting.com/${GITHUB_REPOSITORY}@$TAG_NAME
 | 
			
		||||
          else
 | 
			
		||||
            echo "Error: Invalid tag format '$TAG_NAME'. Expected 'vX.X.X'."
 | 
			
		||||
            exit 1
 | 
			
		||||
          fi
 | 
			
		||||
		Reference in New Issue
	
	Block a user