mirror of
				https://github.com/R2Northstar/Northstar
				synced 2025-10-24 08:52:12 +02:00 
			
		
		
		
	Compare commits
	
		
			33 Commits
		
	
	
		
			v1.8.1-rc6
			...
			v1.20.0-rc
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | de87f41b45 | ||
|   | d6d2dfe47d | ||
|   | c829a40caa | ||
|   | a11a37e710 | ||
|   | 72e8e50d77 | ||
|   | 8fb1f315bb | ||
|   | 4dccb376ec | ||
|   | ec0491e1e3 | ||
|   | cd971e5c0d | ||
|   | 587363f257 | ||
|   | 711676ec8a | ||
|   | c447dcd04e | ||
|   | 1171a5fd2d | ||
|   | 39ac00c374 | ||
|   | 0e68be66f7 | ||
|   | 6132fc2c7d | ||
|   | 7a7ca84bd2 | ||
|   | 7db68d5169 | ||
|   | aa4d230051 | ||
|   | aeb3e5ee17 | ||
|   | 20ae5c9786 | ||
|   | 8d7b5e4515 | ||
|   | c6c55ff014 | ||
|   | fd1c3d98ea | ||
|   | 28b5f4f99f | ||
|   | 0ac4a964f3 | ||
|   | f015f27561 | ||
|   | bfd587df40 | ||
|   | 91da7d7d1b | ||
|   | dc05ebfa9c | ||
|   | a66132db28 | ||
|   | 88673385a0 | ||
|   | f28b0b21a7 | 
							
								
								
									
										20
									
								
								.github/workflows/add-to-project.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/add-to-project.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| name: add-to-project | ||||
|  | ||||
| on: | ||||
|   issues: | ||||
|     types: | ||||
|       - opened | ||||
|   pull_request_target: | ||||
|     types: | ||||
|       - opened | ||||
|  | ||||
| jobs: | ||||
|   add-to-project: | ||||
|     name: Add to project | ||||
|     runs-on: ubuntu-latest | ||||
|     steps: | ||||
|       - uses: actions/add-to-project@v0.5.0 | ||||
|         with: | ||||
|           project-url: "https://github.com/orgs/R2Northstar/projects/3" | ||||
|           github-token: "${{ secrets.PROJECT_BOARD_TOKEN }}" | ||||
|  | ||||
							
								
								
									
										128
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										128
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -2,7 +2,7 @@ name: Build | ||||
| on: | ||||
|   push: | ||||
|     tags: | ||||
|       - '*' | ||||
|       - 'v*' | ||||
|   workflow_dispatch: | ||||
|     inputs: | ||||
|       job: | ||||
| @@ -10,76 +10,36 @@ on: | ||||
|         required: true | ||||
|         default: 'build-thunderstore-package' | ||||
|  | ||||
| permissions: | ||||
|   contents: write # Needed to write to GitHub draft release | ||||
|  | ||||
| env: | ||||
|   NORTHSTAR_VERSION: ${{ github.ref_name }} | ||||
|  | ||||
| jobs: | ||||
|   build-launcher: | ||||
|     runs-on: windows-2022 | ||||
|     steps: | ||||
|       - name: Setup bundled plugins | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           repository: R2Northstar/NorthstarDiscordRPC | ||||
|           path: discord-plugin | ||||
|       - name: Checkout launcher repository | ||||
|         uses: actions/checkout@v2 | ||||
|         with: | ||||
|           repository: R2Northstar/NorthstarLauncher | ||||
|           ref: ${{ env.NORTHSTAR_VERSION }} | ||||
|           path: northstar-launcher | ||||
|       - name: Setup MSBuild | ||||
|         uses: microsoft/setup-msbuild@v1.1 | ||||
|       - name: Setup resource file version | ||||
|         shell: bash | ||||
|         working-directory: northstar-launcher | ||||
|         run: | | ||||
|           sed -i 's/DEV/${{ env.NORTHSTAR_VERSION }}/g' LauncherInjector/resources.rc | ||||
|           FILEVERSION=$(echo ${{ env.NORTHSTAR_VERSION }} | tr '.' ',' | sed -E 's/-rc[0-9]+//' | tr -d '[:alpha:]') | ||||
|           sed -i "s/0,0,0,1/${FILEVERSION}/g" NorthstarDedicatedTest/ns_version.h | ||||
|       - name: Build | ||||
|         working-directory: northstar-launcher | ||||
|         run: | | ||||
|           cp -r ../discord-plugin/*Discord* . | ||||
|           msbuild /p:Configuration=Release R2Northstar.sln | ||||
|           msbuild /p:Configuration=Release NorthstarDiscordRPC.sln | ||||
|       - name: Upload launcher build as artifact | ||||
|         uses: actions/upload-artifact@v2 | ||||
|         with: | ||||
|           name: northstar-launcher | ||||
|           path: | | ||||
|             northstar-launcher/x64/Release/Northstar.dll | ||||
|             northstar-launcher/x64/Release/wsock32.dll | ||||
|             northstar-launcher/x64/Release/NorthstarLauncher.exe | ||||
|             northstar-launcher/x64/Release/discord_game_sdk.dll | ||||
|             northstar-launcher/x64/Release/DiscordRPC.dll | ||||
|             northstar-launcher/x64/Release/*.txt | ||||
|       - name: Upload debug build artifact | ||||
|         uses: actions/upload-artifact@v2 | ||||
|         with: | ||||
|           name: launcher-debug-files | ||||
|           path: | | ||||
|             northstar-launcher/x64/Release/*.pdb | ||||
|  | ||||
|   build-northstar: | ||||
|     needs: build-launcher | ||||
|     runs-on: ubuntu-20.04 | ||||
|     steps: | ||||
|       - name: Download compiled launcher | ||||
|         uses: actions/download-artifact@v2 | ||||
|         with: | ||||
|           name: northstar-launcher | ||||
|           path: northstar-launcher | ||||
|       - name: Download compiled stubs | ||||
|         run: | ||||
|           wget "https://github.com/R2Northstar/NorthstarStubs/releases/download/v1/NorthstarStubs.zip" | ||||
|       - name: Checkout release files | ||||
|         uses: actions/checkout@v2 | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           ref: ${{ env.NORTHSTAR_VERSION }} | ||||
|           path: northstar | ||||
|       - name: Wait for launcher release build to be ready | ||||
|         timeout-minutes: 30 # Only wait for 30 minutes. If we take longer, something probably broke | ||||
|         run: | ||||
|           bash northstar/wait_for_launcher_dl.sh $NORTHSTAR_VERSION | ||||
|       - name: Download compiled launcher | ||||
|         run: | ||||
|           wget "https://github.com/R2Northstar/NorthstarLauncher/releases/download/${{ env.NORTHSTAR_VERSION }}/northstar-launcher.zip" | ||||
|       - name: Download DiscordRPC plugin | ||||
|         run: | ||||
|           wget "https://github.com/R2Northstar/NorthstarDiscordRPC/releases/download/v4/northstar-discord-rpc.zip" | ||||
|       - name: Download compiled stubs | ||||
|         run: | ||||
|           wget "https://github.com/R2Northstar/NorthstarStubs/releases/download/v1/NorthstarStubs.zip" | ||||
|       - name: Checkout core mods | ||||
|         uses: actions/checkout@v2 | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           repository: R2Northstar/NorthstarMods | ||||
|           ref: ${{ env.NORTHSTAR_VERSION }} | ||||
| @@ -98,21 +58,21 @@ jobs: | ||||
|       - name: Make folder structure | ||||
|         run: | | ||||
|           mv -v northstar/release/* northstar/. | ||||
|           rm -d northstar/release | ||||
|           mkdir -p northstar/R2Northstar/mods | ||||
|           mkdir -p northstar/R2Northstar/plugins | ||||
|           mkdir -p northstar/bin/x64_retail | ||||
|           mkdir -p northstar/bin/x64_dedi | ||||
|  | ||||
|           unzip northstar-discord-rpc.zip -d northstar/R2Northstar/plugins | ||||
|  | ||||
|           mv -v northstar-launcher/DiscordRPC.dll northstar/R2Northstar/plugins | ||||
|           mv -v northstar-launcher/discord_game_sdk.dll northstar | ||||
|           mv -v northstar-launcher/wsock32.dll northstar/bin/x64_retail | ||||
|           unzip NorthstarStubs.zip -d northstar/bin/x64_dedi | ||||
|  | ||||
|           mv -v northstar-launcher/* northstar | ||||
|           unzip northstar-launcher.zip -d northstar | ||||
|           rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods | ||||
|       - name: Checkout Navmesh repository | ||||
|         uses: actions/checkout@v2 | ||||
|         uses: actions/checkout@v3 | ||||
|         with: | ||||
|           repository: R2Northstar/NorthstarNavs | ||||
|           ref: 'v2' | ||||
|           path: northstar-navs | ||||
|       - name: Navmeshes setup | ||||
|         run: | | ||||
| @@ -122,16 +82,29 @@ jobs: | ||||
|       - name: Cleanup root Northstar repository files | ||||
|         working-directory: northstar | ||||
|         run: | | ||||
|           rm -rf .git .github .gitignore *.md LICENSE thunderstore .ci.env.example | ||||
|           rm -rf .git .github .gitignore *.md LICENSE thunderstore .ci.env.example *.sh | ||||
|       - name: Upload | ||||
|         uses: actions/upload-artifact@v2 | ||||
|         uses: actions/upload-artifact@v3 | ||||
|         with: | ||||
|           name: Northstar.release.${{ env.NORTHSTAR_VERSION }} | ||||
|           path: northstar | ||||
|       - name: Create zip to upload | ||||
|         run: | | ||||
|           cd northstar/ | ||||
|           zip --recurse-paths --quiet Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip . | ||||
|           mv Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip ../ | ||||
|       - name: Compute SHA-512 checksum | ||||
|         run: | | ||||
|           sha512sum Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip | ||||
|       - name: Upload zip to release draft | ||||
|         uses: softprops/action-gh-release@v1 | ||||
|         if: startsWith(github.ref, 'refs/tags/v') && !contains(env.NORTHSTAR_VERSION, '-rc') | ||||
|         with: | ||||
|           draft: true | ||||
|           files: Northstar.release.${{ env.NORTHSTAR_VERSION }}.zip | ||||
|  | ||||
|   build-thunderstore-package: | ||||
|     needs: build-northstar # comment out when running locally | ||||
|     if: "!contains(github.ref, 'rc')" # Skip uploading release candidates to Thunderstore | ||||
|     env: | ||||
|       # Release envs, comment this out when running locally | ||||
|       TCLI_AUTH_TOKEN: ${{ secrets.THUNDERSTORE_TOKEN }} | ||||
| @@ -161,7 +134,7 @@ jobs: | ||||
|  | ||||
|       - name: Download Northstar package | ||||
|         if: ${{ !env.ACT }} # Download artifacts from previous jobs when running on GitHub's infrastructure | ||||
|         uses: actions/download-artifact@v2 | ||||
|         uses: actions/download-artifact@v3 | ||||
|         with: | ||||
|           name: Northstar.release.${{ env.NORTHSTAR_VERSION }} | ||||
|           path: northstar | ||||
| @@ -169,14 +142,25 @@ jobs: | ||||
|       - name: Make package structure | ||||
|         run: | | ||||
|           mkdir -p thunderstore/dist/Northstar | ||||
|           rm northstar/ns_startup*.txt | ||||
|           mv -v northstar/* thunderstore/dist/Northstar | ||||
|           wget -O thunderstore/icon.png https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/icon.png | ||||
|           wget -O thunderstore/README.md https://raw.githubusercontent.com/R2Northstar/Northstar/main/thunderstore/README.md | ||||
|  | ||||
|       - name: Setup environment variables | ||||
|         run: | | ||||
|           echo "MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr -d 'v')" >> $GITHUB_ENV | ||||
|           # Strip leading `v` and if exists replace `-rc` with `0` and strip leading zeroes from last semver digit if necessary | ||||
|           echo "MOD_VERSION=$(echo $NORTHSTAR_VERSION | tr -d 'v'| sed --expression 's/-rc/0/' | sed -E 's/([0-9]+)\.([0-9]+)\.(0*)([0-9])/\1.\2.\4/;')" >> $GITHUB_ENV | ||||
|  | ||||
|           # If it's a release candidate we also want to change a few things | ||||
|           if [[ $NORTHSTAR_VERSION == *"-rc"* ]]; then | ||||
|             # We want to push to a different package | ||||
|             # i.e. `NorthstarReleaseCandidate` vs `Northstar` | ||||
|             echo "TS_MOD_NAME=NorthstarReleaseCandidate" >> $GITHUB_ENV | ||||
|             # And update mod description | ||||
|             echo "TS_MOD_DESCRIPTION=Release candidate for next Northstar release." >> $GITHUB_ENV | ||||
|             # Add disclaimer add the top of README | ||||
|             echo -e '> ⚠️ This is a release candidate. Please report bugs or other issues on GitHub ⚠️\n' | cat - thunderstore/README.md > temp && mv temp thunderstore/README.md | ||||
|           fi | ||||
|  | ||||
|       - name: Publish package to Thunderstore | ||||
|         working-directory: thunderstore | ||||
|   | ||||
							
								
								
									
										17
									
								
								.github/workflows/post-to-mastodon.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/post-to-mastodon.yml
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| name: Post-to-Mastodon | ||||
| on: | ||||
|   release: | ||||
|     types: [published] | ||||
|  | ||||
| jobs: | ||||
|   toot: | ||||
|     runs-on: ubuntu-22.04 | ||||
|     steps: | ||||
|       - name: Send toot to Mastodon | ||||
|         id: mastodon | ||||
|         uses: cbrgm/mastodon-github-action@v1 | ||||
|         with: | ||||
|           message: "We just released Northstar ${{ github.event.release.tag_name }}\n\n${{ github.event.release.html_url }}" | ||||
|         env: | ||||
|           MASTODON_URL: ${{ secrets.MASTODON_URL }} | ||||
|           MASTODON_ACCESS_TOKEN: ${{ secrets.MASTODON_ACCESS_TOKEN }} | ||||
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							| @@ -1,6 +1,7 @@ | ||||
| # Northstar | ||||
|  | ||||
| [](https://github.com/R2Northstar/Northstar/releases) | ||||
|  | ||||
| [](https://northstar.tf/discord) | ||||
| [](https://r2northstar.gitbook.io) | ||||
|  | ||||
| @@ -12,19 +13,22 @@ Northstar is a modding framework client that allows users to host their own Tita | ||||
|  | ||||
| ## Development | ||||
|  | ||||
| Northstar's development is split into 4 repositories: | ||||
| Northstar's development is split into 6 repositories: | ||||
|  | ||||
| 1. [NorthstarLauncher](https://github.com/R2Northstar/NorthstarLauncher) (Code for the C++ hook DLL) | ||||
| 1. [NorthstarMods](https://github.com/R2Northstar/NorthstarMods) (Code for the squirrel mods responsible for server gamelogic recreation and custom content) | ||||
| 1. [NorthstarMasterServer](https://github.com/R2Northstar/NorthstarMasterServer) (Responsible for server browser, authentication and persistence) | ||||
| 1. [NorthstarStubs](https://github.com/R2Northstar/NorthstarStubs) (D3D11 and GFSDK stubs for the Northstar dedicated server) | ||||
| 1. [NorthstarNavs](https://github.com/R2Northstar/NorthstarNavs) (Custom navmesh files used for AI navigation) | ||||
| 1. [NorthstarDiscordRPC](https://github.com/R2Northstar/NorthstarDiscordRPC) (Discord RPC plugin) | ||||
| 1. [Atlas](https://github.com/R2Northstar/Atlas) (Backend API for server browser, player authentication, and persistence) | ||||
|  | ||||
| The documentation is split into two repositories: | ||||
| The documentation is split into three repositories: | ||||
| 1. [NorthstarTF](https://github.com/R2Northstar/NorthstarTF) (Main website) | ||||
| 1. [NorthstarWiki](https://github.com/R2Northstar/NorthstarWiki) (Wiki covering installation, hosting and configuration of Northstar) | ||||
| 1. [ModdingDocs](https://github.com/R2Northstar/ModdingDocs) (Guides and tutorials on how to mod using Northstar) | ||||
|  | ||||
| ## Special Thanks | ||||
|    | ||||
|  | ||||
| Thanks to everyone that's put up with me and helped out with this project, it's been a fun passion project I've had throughout 2021 so releasing it is pretty cathartic. Specifically:  | ||||
|  | ||||
| - Thanks to the Icepick developers for making the Icepick, I initially forked it for earlier versions of Northstar and it was a great base to experiment with stuff on before moving to the custom launcher. | ||||
|   | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1 +0,0 @@ | ||||
| -multiple | ||||
| @@ -1 +0,0 @@ | ||||
| +setplaylist private_match | ||||
							
								
								
									
										26
									
								
								wait_for_launcher_dl.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										26
									
								
								wait_for_launcher_dl.sh
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| #!/bin/bash | ||||
|  | ||||
| # Check if contains command line arg | ||||
| if [ -z "$1" ]; then | ||||
|     echo "Missing command-line argument." | ||||
|     exit 1 | ||||
| fi | ||||
|  | ||||
| url="https://github.com/R2Northstar/NorthstarLauncher/releases/download/$1/northstar-launcher.zip" | ||||
| wait_time_seconds=60 | ||||
|  | ||||
| # Loop until the response code changes | ||||
| while true; do | ||||
|     response=$(curl --silent --output /dev/null --write-out "%{http_code}" $url) | ||||
|     if [ $response -eq 404 ]; then | ||||
|         echo "Response is 404. Retrying in $wait_time_seconds seconds." | ||||
|         sleep $wait_time_seconds | ||||
|     else | ||||
|         echo "Site is accessible with response code $response." | ||||
|         break | ||||
|     fi | ||||
| done | ||||
|  | ||||
| # 10 second sleep just in case we hit some weird race condition | ||||
| # where files are still being uploaded but release is done | ||||
| sleep 10 | ||||
		Reference in New Issue
	
	Block a user