mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-11-01 00:57:15 +08:00 
			
		
		
		
	Feat: cross compile script
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -6,6 +6,7 @@ | ||||
| *.dylib | ||||
| *.db | ||||
| *.bin | ||||
| /release/ | ||||
|  | ||||
| # Test binary, build with `go test -c` | ||||
| *.test | ||||
|  | ||||
							
								
								
									
										13
									
								
								.travis.yml
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								.travis.yml
									
									
									
									
									
								
							| @ -3,7 +3,12 @@ go: | ||||
|   - 1.13.x | ||||
| git: | ||||
|   depth: 1 | ||||
| script: | ||||
|   - go test -coverprofile=coverage.txt -covermode=atomic ./... | ||||
| after_success: | ||||
|   - bash <(curl -s https://codecov.io/bash) | ||||
| install: | ||||
|   - sudo apt install gcc-mingw-w64 | ||||
|   - chmod +x ./build.sh | ||||
| script:   | ||||
|   - ./build.sh -r b | ||||
| # script: | ||||
| #   - go test -coverprofile=coverage.txt -covermode=atomic ./... | ||||
| # after_success: | ||||
| #   - bash <(curl -s https://codecov.io/bash) | ||||
|  | ||||
							
								
								
									
										26
									
								
								build.sh
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								build.sh
									
									
									
									
									
								
							| @ -26,6 +26,7 @@ buildAssets () { | ||||
|   yarn run build | ||||
|  | ||||
|   if ! [ -x "$(command -v statik)" ]; then | ||||
|     export CGO_ENABLED=0 | ||||
|     go get github.com/rakyll/statik | ||||
|   fi | ||||
|  | ||||
| @ -43,21 +44,34 @@ _build() { | ||||
|     IFS=/ read -r -a arr <<<"$osarch" | ||||
|     os="${arr[0]}" | ||||
|     arch="${arr[1]}" | ||||
|     gcc="${arr[2]}" | ||||
|  | ||||
|     # Go build to build the binary. | ||||
|     export GOOS=$os | ||||
|     export GOARCH=$arch | ||||
|     export CC=$gcc | ||||
|     export CGO_ENABLED=1 | ||||
|  | ||||
|     go build -a -o cloudreve_$VERSION_$GOOS_$GOARCH -ldflags " -X 'github.com/HFO4/cloudreve/pkg/conf.BackendVersion=$VERSION' -X 'github.com/HFO4/cloudreve/pkg/conf.LastCommit=$COMMIT_SHA'" | ||||
|     out="release/cloudreve_${VERSION}_${os}_${arch}" | ||||
|     go build -a -o "${out}" -ldflags " -X 'github.com/HFO4/cloudreve/pkg/conf.BackendVersion=$VERSION' -X 'github.com/HFO4/cloudreve/pkg/conf.LastCommit=$COMMIT_SHA'" | ||||
|  | ||||
|     if [ "$os" = "windows" ]; then | ||||
|       mv $out release/cloudreve.exe | ||||
|       zip -j -q "${out}.zip" release/cloudreve.exe | ||||
|       rm -f "release/cloudreve.exe" | ||||
|     else | ||||
|       mv $out release/cloudreve | ||||
|       tar -zcvf "${out}.tar.gz" -C release cloudreve | ||||
|       rm -f "release/cloudreve" | ||||
|     fi | ||||
| } | ||||
|  | ||||
| release(){ | ||||
|   cd $REPO | ||||
|   export CGO_ENABLED=1 | ||||
|   ## List of architectures and OS to test coss compilation. | ||||
|   SUPPORTED_OSARCH="linux/arm64 darwin/amd64 windows/amd64 linux/arm linux/386 windows/386" | ||||
|   SUPPORTED_OSARCH="linux/amd64/gcc linux/arm/arm-linux-gnueabihf-gcc windows/amd64/x86_64-w64-mingw32-gcc" | ||||
|  | ||||
|   echo "Release builds for OS/Arch: ${SUPPORTED_OSARCH}" | ||||
|   echo "Release builds for OS/Arch/CC: ${SUPPORTED_OSARCH}" | ||||
|   for each_osarch in ${SUPPORTED_OSARCH}; do | ||||
|       _build "${each_osarch}" | ||||
|   done | ||||
| @ -81,7 +95,7 @@ while getopts "bacr:d" o; do | ||||
|       BINARY="true" | ||||
|       ;; | ||||
|     r) | ||||
|       ASSETS="true" | ||||
|       # ASSETS="true" | ||||
|       RELEASE="true" | ||||
|       ;; | ||||
|     d) | ||||
| @ -108,4 +122,4 @@ fi | ||||
|  | ||||
| if [ "$RELEASE" = "true" ]; then | ||||
|   release | ||||
| fi | ||||
| fi | ||||
| @ -46,7 +46,7 @@ var spaces = map[string]string{ | ||||
| // Println 打印 | ||||
| func (ll *Logger) Println(prefix string, msg string) { | ||||
| 	// TODO Release时去掉 | ||||
| 	color.NoColor = false | ||||
| 	// color.NoColor = false | ||||
|  | ||||
| 	c := color.New() | ||||
| 	_, _ = c.Printf( | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Aaron
					Aaron