Some checks failed
Unreal Engine Build / trigger-builds (push) Has been cancelled
163 lines
6.5 KiB
YAML
163 lines
6.5 KiB
YAML
name: Create Release
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
workflow_call:
|
|
|
|
jobs:
|
|
create-release:
|
|
runs-on: ubuntu-latest
|
|
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/develop'
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v3
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Create Tag
|
|
run: |
|
|
# Fetch all tags
|
|
git fetch --tags
|
|
|
|
# Get the latest version tag, if any
|
|
LATEST_TAG=$(git tag -l "v[0-9]*.[0-9]*.[0-9]*" | sort -V | tail -n1)
|
|
|
|
if [ -z "$LATEST_TAG" ]; then
|
|
# No previous version tag, start with 1.0.0
|
|
NEW_VERSION="1.0.0"
|
|
echo "No previous version tags found, starting with 1.0.0"
|
|
else
|
|
# Strip 'v' prefix if it exists
|
|
VERSION=${LATEST_TAG#v}
|
|
|
|
# Split version into parts
|
|
MAJOR=$(echo $VERSION | cut -d. -f1)
|
|
MINOR=$(echo $VERSION | cut -d. -f2)
|
|
PATCH=$(echo $VERSION | cut -d. -f3)
|
|
|
|
# Auto-increment patch version
|
|
PATCH=$((PATCH + 1))
|
|
NEW_VERSION="${MAJOR}.${MINOR}.${PATCH}"
|
|
echo "Auto-incremented patch version from ${VERSION} to ${NEW_VERSION}"
|
|
fi
|
|
|
|
# Final tag with v prefix
|
|
TAG="v${NEW_VERSION}"
|
|
echo "Creating git tag: $TAG"
|
|
|
|
# Configure git with token authentication
|
|
git config --global user.email "actions@gitea.com"
|
|
git config --global user.name "Gitea Actions"
|
|
|
|
# Direct token approach
|
|
git remote set-url origin "https://runner:${{ secrets.GITEATOKEN }}@luckyrobots.com/luckyrobots/luckyworld.git"
|
|
|
|
# Check if tag exists
|
|
if ! git rev-parse "$TAG" >/dev/null 2>&1; then
|
|
# Create tag
|
|
git tag -a "$TAG" -m "Release $TAG"
|
|
|
|
# Push tag
|
|
git push origin "$TAG"
|
|
echo "Successfully created and pushed tag: $TAG"
|
|
else
|
|
echo "Tag $TAG already exists, skipping tag creation"
|
|
fi
|
|
echo "RELEASE_TAG=$TAG" >> $GITHUB_ENV
|
|
|
|
- name: Download all artifacts
|
|
uses: actions/download-artifact@v3
|
|
with:
|
|
path: releases
|
|
|
|
- name: Create Build Info
|
|
run: |
|
|
# Create a build info JSON file
|
|
echo '{
|
|
"version": "${{ env.RELEASE_TAG }}",
|
|
"buildNumber": "${{ github.run_number }}",
|
|
"commit": "${{ github.sha }}",
|
|
"branch": "${{ github.ref_name }}",
|
|
"buildDate": "'$(date -u +"%Y-%m-%dT%H:%M:%SZ")'",
|
|
"artifacts": {
|
|
"windows": "https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Windows",
|
|
"linux": "https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Linux",
|
|
"macos": "https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-macOS"
|
|
}
|
|
}' > build-info.json
|
|
|
|
# Create a simple HTML download page
|
|
echo '<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>LuckyRobots ${{ env.RELEASE_TAG }} Downloads</title>
|
|
<style>
|
|
body { font-family: Arial, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }
|
|
h1 { color: #333; }
|
|
.download-btn {
|
|
display: inline-block;
|
|
background-color: #4CAF50;
|
|
color: white;
|
|
padding: 10px 20px;
|
|
text-decoration: none;
|
|
border-radius: 4px;
|
|
margin: 10px 5px;
|
|
}
|
|
.download-btn:hover { background-color: #45a049; }
|
|
.platform { margin-bottom: 30px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>LuckyRobots Game - ${{ env.RELEASE_TAG }}</h1>
|
|
<p>Build #${{ github.run_number }} - Built from commit: ${{ github.sha }}</p>
|
|
|
|
<div class="platform">
|
|
<h2>Windows</h2>
|
|
<p><a href="https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Windows" class="download-btn">Download Windows Build</a></p>
|
|
</div>
|
|
|
|
<div class="platform">
|
|
<h2>Linux</h2>
|
|
<p><a href="https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Linux" class="download-btn">Download Linux Build</a></p>
|
|
</div>
|
|
|
|
<div class="platform">
|
|
<h2>macOS</h2>
|
|
<p><a href="https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-macOS" class="download-btn">Download macOS Build</a></p>
|
|
</div>
|
|
|
|
<footer>
|
|
<p>Generated on '$(date -u +"%Y-%m-%d %H:%M:%S UTC")'</p>
|
|
</footer>
|
|
</body>
|
|
</html>' > downloads.html
|
|
|
|
- name: Create Release
|
|
uses: https://gitea.com/actions/gitea-release-action@main
|
|
with:
|
|
files: |-
|
|
build-info.json
|
|
downloads.html
|
|
token: '${{ secrets.GITEATOKEN }}'
|
|
title: 'Release ${{ env.RELEASE_TAG }}'
|
|
body: |
|
|
## LuckyRobots Game Release ${{ env.RELEASE_TAG }}
|
|
|
|
### Download Links
|
|
|
|
Download builds from our CI artifacts:
|
|
|
|
- [Windows Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Windows)
|
|
- [Linux Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-Linux)
|
|
- [macOS Build](https://luckyrobots.com/luckyrobots/luckyworld/actions/runs/${{ github.run_id }}/artifacts/LuckyRobots-macOS)
|
|
|
|
### Build Information
|
|
|
|
- Build Number: #${{ github.run_number }}
|
|
- Commit: ${{ github.sha }}
|
|
- Branch: ${{ github.ref_name }}
|
|
- Build Date: $(date -u +"%Y-%m-%d %H:%M:%S UTC")
|
|
prerelease: ${{ github.ref != 'refs/heads/main' }}
|
|
tag_name: '${{ env.RELEASE_TAG }}' |