diff --git a/.github/workflows/builder.yaml b/.github/workflows/build.yaml similarity index 52% rename from .github/workflows/builder.yaml rename to .github/workflows/build.yaml index e8a4253d..4639db3a 100644 --- a/.github/workflows/builder.yaml +++ b/.github/workflows/build.yaml @@ -1,12 +1,14 @@ -name: Build project +name: Build on: - push: - branches: - - release - pull_request: - branches: - - release + push: + branches: + - release + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' + pull_request: + branches: + - release jobs: buildForAllSupportedPlatforms: @@ -36,13 +38,20 @@ jobs: UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} with: - buildName: micromissiles-${{ github.run_number }}-${{ matrix.targetPlatform }} + buildName: micromissiles-${{ github.ref_name }}-${{ matrix.targetPlatform }} versioning: Semantic targetPlatform: ${{ matrix.targetPlatform }} - - name: Make build output readable and executable - run: | - sudo chmod -R 777 build/${{ matrix.targetPlatform }} - - uses: actions/upload-artifact@v4 + - if: matrix.targetPlatform == 'StandaloneWindows64' + run: cd build/${{ matrix.targetPlatform }} && sudo zip -r ../build-${{ matrix.targetPlatform }}.zip * && cd - + - if: matrix.targetPlatform == 'StandaloneWindows64' + uses: actions/upload-artifact@v4 with: name: Build-${{ matrix.targetPlatform }} - path: build/${{ matrix.targetPlatform }} \ No newline at end of file + path: build/build-${{ matrix.targetPlatform }}.zip + - if: matrix.targetPlatform == 'StandaloneOSX' + run: sudo tar -czvf build/build-${{ matrix.targetPlatform }}.tar.gz -C build/${{ matrix.targetPlatform }} . + - if: matrix.targetPlatform == 'StandaloneOSX' + uses: actions/upload-artifact@v4 + with: + name: Build-${{ matrix.targetPlatform }} + path: build/build-${{ matrix.targetPlatform }}.tar.gz diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..242821c0 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,55 @@ +name: Release + +on: + workflow_run: + workflows: [Build] + types: [completed] + branches-ignore: + - release + +jobs: + release: + name: Create release + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - uses: actions/checkout@v4 + with: + ref: ${{ github.event.workflow_run.head_branch }} + fetch-depth: 0 + lfs: false + - name: Create release + id: create_release + uses: actions/create-release@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.event.workflow_run.head_branch }} + release_name: ${{ github.event.workflow_run.head_branch }} + body_path: RELEASE.md + draft: false + prerelease: false + - uses: actions/download-artifact@v4 + with: + path: build + merge-multiple: true + github-token: ${{ secrets.GITHUB_TOKEN }} + run-id: ${{ github.event.workflow_run.id }} + - name: Upload Windows release assets + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_name: micromissiles-${{ github.event.workflow_run.head_branch }}-windows_x86_64.zip + asset_path: build/build-StandaloneWindows64.zip + asset_content_type: application/zip + - name: Upload Darwin release assets + uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + upload_url: ${{ steps.create_release.outputs.upload_url }} + asset_name: micromissiles-${{ github.event.workflow_run.head_branch }}-darwin.tar.gz + asset_path: build/build-StandaloneOSX.tar.gz + asset_content_type: application/gzip diff --git a/README.md b/README.md index fdca127d..c44724ae 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,29 @@ ![Sim Salvo Animation](docs/images/sim_salvo_animation.gif) -# Getting started **developing** micromissiles-unity +# Quick Start + +We generate pre-built standalone binaries for Windows and Mac users from the `release` branch. These binaries are intended for non-development users who just want to run the application and modify a few configurations along the way. + +You can find the latest release [here](https://github.com/PisterLab/micromissiles-unity/releases/latest). + +## Windows + +1. Download the zip file for Windows: `micromissiles--windows_x86_64.zip`. +2. Unzip the zip file. The zip file should contain a single directory called `micromissiles--windows_x86_64`. +3. In the `micromissiles--windows_x86_64` directory, run `micromissiles--StandaloneWindows64.exe`. + +## Mac + +1. Download the tarball file for Darwin: `micromissiles--darwin.tar.gz`. +2. Untar the tarball. The tarball should contain a single directory called `micromissiles--darwin`. +3. In the `micromissiles--darwin` directory, run the app file. +4. If you get a warning that Apple cannot check the application for malicious software: + * Open `System Preferences`. + * Navigate to `Privacy & Security`. + * Click on `Open Anyway` to bypass Apple's developer check. + +# Development This guide will help you set up and run the project in development mode. You'll learn how to install Unity Hub, open the project, and navigate the main scene. @@ -19,7 +41,7 @@ This guide will help you set up and run the project in development mode. You'll ## Prerequisites -- A computer with internet access ;) +- A computer with internet access. - Administrative privileges to install software. - [Git](https://git-scm.com/downloads) installed on your system (optional, for cloning the repository). @@ -54,7 +76,7 @@ Alternatively, you can download the repository as a ZIP file and extract it to a - Navigate to the **"Projects"** tab. - Click on the **"ADD"** button. - Browse to the folder where you cloned or extracted the project. - - Select the folder containing the `Assets` folder and click **"Select Folder"**. + - Select the folder containing the `Assets` folder and click on **"Select Folder"**. 3. **Install the Required Unity Version**: - Unity Hub will detect if the project requires a Unity version that is not currently installed. @@ -65,7 +87,6 @@ Alternatively, you can download the repository as a ZIP file and extract it to a 4. **Open the Project**: - Once the required Unity version is installed, click on the project name in Unity Hub to open it. - ### 4. Open the Main Scene After the project opens in Unity: @@ -90,4 +111,4 @@ After the project opens in Unity: ## Additional Resources - [Keybinds and Controls](docs/Keybinds_and_Controls.md) -- [Simulation Configuration Guide](docs/Simulation_Config_Guide.md) \ No newline at end of file +- [Simulation Configuration Guide](docs/Simulation_Config_Guide.md) diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 00000000..ec3e4635 --- /dev/null +++ b/RELEASE.md @@ -0,0 +1,19 @@ +# micromissiles-unity + +## Instructions + +Download and extract the archive corresponding to your platform (Windows or Mac) from the binaries listed below. + +## Windows + +1. Download the zip file for Windows. +2. Unzip the zip file and run the `.exe` file. + +## Mac + +1. Download the tarball for Darwin. +2. Untar the tarball and run the app file. +3. If you get a warning that Apple cannot check the application for malicious software: + * Open `System Preferences`. + * Navigate to `Privacy & Security`. + * Click on `Open Anyway` to bypass Apple's developer check.