1
mirror of https://github.com/R2Northstar/Northstar synced 2025-09-16 14:10:48 +02:00

Compare commits

...

20 Commits

Author SHA1 Message Date
GeckoEidechse
c829a40caa Pass missing version number to wait script 2023-11-02 12:49:34 +01:00
GeckoEidechse
a11a37e710 Checkout repo files as first step (#577)
Checkout the files from this repo first in order to have the bash
script ready that is needed to block launcher files download.
2023-11-02 12:14:51 +01:00
GeckoEidechse
72e8e50d77 Fix bash script file name
I changed the filename but forgot to update it in the CI config
2023-11-02 12:02:09 +01:00
GeckoEidechse
8fb1f315bb Add step to wait for launcher files to be ready (#576)
Adds a small bash script and calls it in CI to block the CI from progressing until the launcher release files are uploaded.
2023-11-02 11:51:52 +01:00
GeckoEidechse
4dccb376ec Trim trailing whitespaces 2023-10-30 21:05:31 +01:00
Jack
ec0491e1e3 Make add-to-project work on PRs (#574) 2023-10-29 00:01:55 +02:00
GeckoEidechse
cd971e5c0d Publish Mastodon post on new release (#571)
Adds an action to publish a post to Mastodon on each new release
2023-10-19 17:25:13 +02:00
GeckoEidechse
587363f257 Only run add-to-project action on issues
PRs from forks are triggered from that fork which means that they don't
have access to the necessary token
2023-10-15 02:19:18 +02:00
Jack
711676ec8a Add workflow for adding PRs and Issues to the project board (#566)
Automatically adds all opened issues and pull requests to the project board.
2023-10-14 23:11:48 +02:00
GeckoEidechse
c447dcd04e Bump NorthstarNavs to v2 (#512)
Co-authored-by: Zanieon <william-millennium@hotmail.com>
2023-07-13 18:30:40 +02:00
F1F7Y
1171a5fd2d Download launcher from release instead of rebuilding (#498) 2023-06-22 23:10:57 +02:00
pg9182
39ac00c374 Remove placeholder_playerdata.pdata (#459)
Not needed since v1.10 (R2Northstar/NorthstarLauncher@841881af9e).
2023-04-29 18:34:56 +02:00
pg9182
0e68be66f7 Update README project list (#464)
Update README project list to mention Atlas, DiscordRPC, and web page as well.
2023-04-23 13:40:22 +02:00
pg9182
6132fc2c7d Fix typo in 7a7ca84bd2 (#461) (#465) 2023-04-22 23:18:09 +02:00
pg9182
7a7ca84bd2 Remove stray release dir from release zip (#461)
For some reason there's a stray empty `release` folder inside the release zip that shouldn't be there.
2023-04-22 22:58:14 +02:00
pg9182
7db68d5169 Show SHA-512 checksum of release zip (#462)
This will print SHA-512 checksum of release zip
2023-04-22 22:55:59 +02:00
pg9182
aa4d230051 Update DiscordRPC to v4 (#460)
Requires plugins v2.
2023-04-22 03:11:46 +02:00
GeckoEidechse
aeb3e5ee17 Bump download-artifact action to v3 (#447)
v2 is being deprecated
2023-04-07 17:34:36 +02:00
GeckoEidechse
20ae5c9786 Grab pre-compiled DiscordRPC plugin (#437)
Instead of recompiling on each release
2023-03-13 20:31:01 +01:00
GeckoEidechse
8d7b5e4515 Add step to create release draft and upload zip (#432)
* Add step to create release draft and upload zip

* Skip draft creation for release candidates

* Zip folder before upload and give permission

The action we use can only deal with single files, not folders

* Use `env.NORTHSTAR_VERSION`

* Check if tags start with `v`
2023-03-07 21:34:17 +01:00
6 changed files with 106 additions and 69 deletions

20
.github/workflows/add-to-project.yml vendored Normal file
View 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 }}"

View File

@@ -10,75 +10,34 @@ on:
required: true required: true
default: 'build-thunderstore-package' default: 'build-thunderstore-package'
permissions:
contents: write # Needed to write to GitHub draft release
env: env:
NORTHSTAR_VERSION: ${{ github.ref_name }} NORTHSTAR_VERSION: ${{ github.ref_name }}
jobs: jobs:
build-launcher:
runs-on: windows-2022
steps:
- name: Setup bundled plugins
uses: actions/checkout@v3
with:
repository: R2Northstar/NorthstarDiscordRPC
ref: 'v1'
path: discord-plugin
- name: Checkout launcher repository
uses: actions/checkout@v3
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' NorthstarLauncher/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" NorthstarDLL/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@v3
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@v3
with:
name: launcher-debug-files
path: |
northstar-launcher/x64/Release/*.pdb
build-northstar: build-northstar:
needs: build-launcher
runs-on: ubuntu-20.04 runs-on: ubuntu-20.04
steps: 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 - name: Checkout release files
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
ref: ${{ env.NORTHSTAR_VERSION }} ref: ${{ env.NORTHSTAR_VERSION }}
path: northstar 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 - name: Checkout core mods
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
@@ -99,22 +58,21 @@ jobs:
- name: Make folder structure - name: Make folder structure
run: | run: |
mv -v northstar/release/* northstar/. mv -v northstar/release/* northstar/.
rm -d northstar/release
mkdir -p northstar/R2Northstar/mods mkdir -p northstar/R2Northstar/mods
mkdir -p northstar/R2Northstar/plugins 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 unzip NorthstarStubs.zip -d northstar/bin/x64_dedi
unzip northstar-launcher.zip -d northstar
mv -v northstar-launcher/* northstar
rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods rsync -avr --exclude="Northstar.Coop" --exclude=".git*" northstar-mods/. northstar/R2Northstar/mods
- name: Checkout Navmesh repository - name: Checkout Navmesh repository
uses: actions/checkout@v3 uses: actions/checkout@v3
with: with:
repository: R2Northstar/NorthstarNavs repository: R2Northstar/NorthstarNavs
ref: 'v1' ref: 'v2'
path: northstar-navs path: northstar-navs
- name: Navmeshes setup - name: Navmeshes setup
run: | run: |
@@ -130,6 +88,20 @@ jobs:
with: with:
name: Northstar.release.${{ env.NORTHSTAR_VERSION }} name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
path: northstar 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: build-thunderstore-package:
needs: build-northstar # comment out when running locally needs: build-northstar # comment out when running locally
@@ -162,7 +134,7 @@ jobs:
- name: Download Northstar package - name: Download Northstar package
if: ${{ !env.ACT }} # Download artifacts from previous jobs when running on GitHub's infrastructure 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: with:
name: Northstar.release.${{ env.NORTHSTAR_VERSION }} name: Northstar.release.${{ env.NORTHSTAR_VERSION }}
path: northstar path: northstar

17
.github/workflows/post-to-mastodon.yml vendored Normal file
View 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 }}

View File

@@ -13,20 +13,22 @@ Northstar is a modding framework client that allows users to host their own Tita
## Development ## Development
Northstar's development is split into 5 repositories: Northstar's development is split into 6 repositories:
1. [NorthstarLauncher](https://github.com/R2Northstar/NorthstarLauncher) (Code for the C++ hook DLL) 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. [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. [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. [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. [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) 1. [ModdingDocs](https://github.com/R2Northstar/ModdingDocs) (Guides and tutorials on how to mod using Northstar)
## Special Thanks ## 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 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. - 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.

26
wait_for_launcher_dl.sh Executable file
View 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/tag/$1"
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 -ne 200 ]; then
echo "Response is not 200. 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