62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Determine the tag
 | 
						|
echo "Figuring out the tag..."
 | 
						|
TAG=$(git describe --tags --exact-match 2>/dev/null || echo "")
 | 
						|
if [ -z "$TAG" ]; then
 | 
						|
  # Get the latest tag
 | 
						|
  LATEST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1))
 | 
						|
  # Increment the patch version
 | 
						|
  IFS='.' read -r -a VERSION_PARTS <<< "$LATEST_TAG"
 | 
						|
  VERSION_PARTS[2]=$((VERSION_PARTS[2]+1))
 | 
						|
  TAG="${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.${VERSION_PARTS[2]}"
 | 
						|
  # Create a new tag
 | 
						|
  git tag $TAG
 | 
						|
  git push origin $TAG
 | 
						|
fi
 | 
						|
echo "Tag: $TAG"
 | 
						|
 | 
						|
# Build the application
 | 
						|
echo "Building the thing..."
 | 
						|
flutter build windows --release
 | 
						|
flutter build apk --release
 | 
						|
 | 
						|
echo "Creating a release..."
 | 
						|
TOKEN="$GITEA_API_KEY"
 | 
						|
GITEA="https://git.site.quack-lab.dev"
 | 
						|
REPO="dave/flutter-gamer-updater"
 | 
						|
ZIP="gamer-updater-${TAG}.zip"
 | 
						|
APK="gamer-updater-${TAG}.apk"
 | 
						|
# Create a release
 | 
						|
RELEASE_RESPONSE=$(curl -s -X POST \
 | 
						|
  -H "Authorization: token $TOKEN" \
 | 
						|
  -H "Accept: application/json" \
 | 
						|
  -H "Content-Type: application/json" \
 | 
						|
  -d '{
 | 
						|
    "tag_name": "'"$TAG"'",
 | 
						|
    "name": "'"$TAG"'",
 | 
						|
    "draft": false,
 | 
						|
    "prerelease": false
 | 
						|
  }' \
 | 
						|
  $GITEA/api/v1/repos/$REPO/releases)
 | 
						|
 | 
						|
# Extract the release ID
 | 
						|
echo $RELEASE_RESPONSE
 | 
						|
RELEASE_ID=$(echo $RELEASE_RESPONSE | awk -F'"id":' '{print $2+0; exit}')
 | 
						|
echo "Release ID: $RELEASE_ID"
 | 
						|
 | 
						|
echo "Uploading the things..."
 | 
						|
WINRELEASE="./build/windows/x64/runner/Release/"
 | 
						|
7z a $WINRELEASE/$ZIP $WINRELEASE/*
 | 
						|
curl -X POST \
 | 
						|
  -H "Authorization: token $TOKEN" \
 | 
						|
  -F "attachment=@$WINRELEASE/$ZIP" \
 | 
						|
  "$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=$ZIP"
 | 
						|
rm $WINRELEASE/$ZIP
 | 
						|
 | 
						|
ANDROIDRELEASE="./build/app/outputs/flutter-apk/"
 | 
						|
mv $ANDROIDRELEASE/app-release.apk $ANDROIDRELEASE/$APK
 | 
						|
curl -X POST \
 | 
						|
  -H "Authorization: token $TOKEN" \
 | 
						|
  -F "attachment=@$ANDROIDRELEASE/$APK" \
 | 
						|
  "$GITEA/api/v1/repos/$REPO/releases/${RELEASE_ID}/assets?name=$APK" |