Add package script
type: distribution
This commit is contained in:
		
							parent
							
								
									cf59a58c67
								
							
						
					
					
						commit
						ff3a30ae21
					
				
							
								
								
									
										52
									
								
								bin/package
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										52
									
								
								bin/package
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,52 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
 | 
			
		||||
set -euxo pipefail
 | 
			
		||||
 | 
			
		||||
version=${1#"refs/tags/"}
 | 
			
		||||
os=$2
 | 
			
		||||
target=$3
 | 
			
		||||
src=`pwd`
 | 
			
		||||
dist=$src/dist
 | 
			
		||||
bin=imdl
 | 
			
		||||
 | 
			
		||||
echo "Packaging $bin $version for $target..."
 | 
			
		||||
 | 
			
		||||
test -f Cargo.lock || cargo generate-lockfile
 | 
			
		||||
 | 
			
		||||
echo "Building $bin..."
 | 
			
		||||
 | 
			
		||||
case $os in
 | 
			
		||||
  ubuntu-latest | macos-latest)
 | 
			
		||||
    cargo rustc --bin $bin --target $target --release -- -C lto
 | 
			
		||||
    executable=target/$target/release/$bin
 | 
			
		||||
    ;;
 | 
			
		||||
  windows-latest)
 | 
			
		||||
    cargo rustc --bin $bin --target $target --release -- -C lto -C target-feature="+crt-static"
 | 
			
		||||
    executable=target/$target/release/$bin.exe
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
 | 
			
		||||
echo "Copying release files..."
 | 
			
		||||
mkdir dist
 | 
			
		||||
cp \
 | 
			
		||||
  $executable \
 | 
			
		||||
  Cargo.lock \
 | 
			
		||||
  Cargo.toml \
 | 
			
		||||
  LICENSE \
 | 
			
		||||
  README.md \
 | 
			
		||||
  $dist
 | 
			
		||||
 | 
			
		||||
cd $dist
 | 
			
		||||
echo "Creating release archive..."
 | 
			
		||||
case $os in
 | 
			
		||||
  ubuntu-latest | macos-latest)
 | 
			
		||||
    archive=$dist/$bin-$version-$target.tar.gz
 | 
			
		||||
    tar czf $archive *
 | 
			
		||||
    echo "::set-output name=archive::$archive"
 | 
			
		||||
    ;;
 | 
			
		||||
  windows-latest)
 | 
			
		||||
    archive=$dist/$bin-$version-$target.zip
 | 
			
		||||
    7z a $archive *
 | 
			
		||||
    echo "::set-output name=archive::`pwd -W`/$bin-$version-$target.zip"
 | 
			
		||||
    ;;
 | 
			
		||||
esac
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user