name: Unreal Engine Build on: workflow_dispatch: push: branches: [ozgur/build] jobs: windows-build: runs-on: windows steps: - name: Checkout repository uses: actions/checkout@v3 with: lfs: true fetch-depth: 0 - name: Build Windows uses: ./.gitea/actions/windows-build linux-build: runs-on: windows steps: - name: Checkout repository uses: actions/checkout@v3 with: lfs: true fetch-depth: 0 - name: Build Linux uses: ./.gitea/actions/linux-build macos-build: runs-on: macos steps: - name: Checkout repository uses: actions/checkout@v3 with: lfs: true fetch-depth: 0 - name: Build macOS uses: ./.gitea/actions/macos-build with: apple_team_id: ${{ secrets.APPLE_TEAM_ID }} apple_certificate_base64: ${{ secrets.MACOS_CERTIFICATE }} apple_certificate_password: ${{ secrets.MACOS_CERTIFICATE_PWD }} api_key_path: ${{ secrets.NOTARY_API_KEY_PATH }} api_key_id: ${{ secrets.NOTARY_API_KEY_ID }} api_key_issuer_id: ${{ secrets.NOTARY_API_KEY_ISSUER_ID }} create-release: needs: [windows-build, linux-build, macos-build] 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 '
Build #${{ github.run_number }} - Built from commit: ${{ github.sha }}