steamos CD deployment (#8)
This commit is contained in:
42
.github/workflows/cd.yml
vendored
42
.github/workflows/cd.yml
vendored
@@ -34,10 +34,50 @@ jobs:
|
||||
|
||||
- name: Archive
|
||||
run: |
|
||||
mv target/x86_64-unknown-linux-gnu/release/hedz_reloaded hedz_reloaded
|
||||
cp target/x86_64-unknown-linux-gnu/release/hedz_reloaded hedz_reloaded
|
||||
tar -czf steamos.tar.gz hedz_reloaded
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: steamos.tar.gz
|
||||
path: ./steamos.tar.gz
|
||||
|
||||
- name: Copy Binary for SteamOS
|
||||
run: |
|
||||
mkdir -p build/steamos/content
|
||||
cp target/x86_64-unknown-linux-gnu/release/hedz_reloaded build/steamos/content/hedz_reloaded
|
||||
|
||||
- name: Install SteamCMD
|
||||
run: |
|
||||
sudo apt-get install lib32gcc-s1 -y
|
||||
mkdir ~/Steam && cd ~/Steam
|
||||
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
|
||||
chmod +x ~/Steam/
|
||||
~/Steam/steamcmd.sh +help +quit
|
||||
|
||||
- name: Steam Auth
|
||||
env:
|
||||
STEAM_CONFIG: ${{ secrets.STEAM_CONFIG_VDF_BASE64 }}
|
||||
STEAM_CONFIG_PATH: ~/Steam/config
|
||||
run: |
|
||||
mkdir -p $STEAM_CONFIG_PATH
|
||||
# Decode the base64 data and save it to the config location
|
||||
echo "$STEAM_CONFIG" | base64 --decode | gunzip > $STEAM_CONFIG_PATH/config.vdf
|
||||
# Set proper permissions
|
||||
chmod 644 $STEAM_CONFIG_PATH/config.vdf
|
||||
ls -lisah $STEAM_CONFIG_PATH/config.vdf
|
||||
|
||||
- name: Steam deploy
|
||||
env:
|
||||
# needs to be fully qualified path for steamcmd to find it
|
||||
DEPOT: ${{ github.workspace }}/build/steamos/scripts/hedz.vdf
|
||||
STEAM_USR: ${{ secrets.STEAM_USR }}
|
||||
run: |
|
||||
cd build/steamos
|
||||
~/Steam/steamcmd.sh +login $STEAM_USR +run_app_build $DEPOT +quit
|
||||
|
||||
- name: Discord notification
|
||||
uses: appleboy/discord-action@v1.2.0
|
||||
with:
|
||||
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
|
||||
message: New HEDZ-Reloaded alpha version on Steam
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,3 +2,4 @@
|
||||
.DS_Store
|
||||
assets/maps/autosave
|
||||
build/steamos/hedz_reloaded
|
||||
build/steamos/.env
|
||||
|
||||
2
build/steamos/.env.tpl
Normal file
2
build/steamos/.env.tpl
Normal file
@@ -0,0 +1,2 @@
|
||||
STEAM_USR=rustunit
|
||||
STEAM_PWD={{ op://Employee/Steam/password }}
|
||||
1
build/steamos/.envrc
Normal file
1
build/steamos/.envrc
Normal file
@@ -0,0 +1 @@
|
||||
dotenv
|
||||
30
build/steamos/README.md
Normal file
30
build/steamos/README.md
Normal file
@@ -0,0 +1,30 @@
|
||||
|
||||
# buildmachine exclusive steam user:
|
||||
|
||||
see https://partner.steamgames.com/doc/sdk/uploading#Build_Account
|
||||
|
||||
# buildmachine auth key
|
||||
|
||||
go on a linux x86 machine:
|
||||
|
||||
```
|
||||
mkdir ~/Steam && cd ~/Steam
|
||||
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
|
||||
chmod +x ~/Steam/
|
||||
~/Steam/steamcmd.sh +help +quit
|
||||
```
|
||||
|
||||
now we have to login with out ci account:
|
||||
|
||||
```
|
||||
~/Steam/steamcmd.sh +login USERNAME +quit
|
||||
```
|
||||
|
||||
If succesfull this creates `~/Steam/config/config.vdf`.
|
||||
|
||||
On a mac:
|
||||
```
|
||||
cat config.vdf | gzip | base64 | pbcopy
|
||||
```
|
||||
|
||||
The gzipped and base64 encoded file is now in the clipboard and ready to be put into a CI secret.
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,40 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
STEAMROOT="$(cd "${0%/*}" && echo $PWD)"
|
||||
STEAMEXE=`basename "$0" .sh`
|
||||
|
||||
UNAME=`uname`
|
||||
if [ "$UNAME" == "Linux" ]; then
|
||||
PLATFORM=linux32
|
||||
export LD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$LD_LIBRARY_PATH"
|
||||
else # if [ "$UNAME" == "Darwin" ]; then
|
||||
PLATFORM=osx32
|
||||
export DYLD_LIBRARY_PATH="$STEAMROOT/$PLATFORM:$DYLD_LIBRARY_PATH"
|
||||
fi
|
||||
|
||||
ulimit -n 2048
|
||||
|
||||
MAGIC_RESTART_EXITCODE=42
|
||||
|
||||
if [ "$DEBUGGER" == "gdb" ] || [ "$DEBUGGER" == "cgdb" ]; then
|
||||
ARGSFILE=$(mktemp $USER.steam.gdb.XXXX)
|
||||
|
||||
# Set the LD_PRELOAD varname in the debugger, and unset the global version.
|
||||
if [ "$LD_PRELOAD" ]; then
|
||||
echo set env LD_PRELOAD=$LD_PRELOAD >> "$ARGSFILE"
|
||||
echo show env LD_PRELOAD >> "$ARGSFILE"
|
||||
unset LD_PRELOAD
|
||||
fi
|
||||
|
||||
$DEBUGGER -x "$ARGSFILE" "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
|
||||
rm "$ARGSFILE"
|
||||
else
|
||||
$DEBUGGER "$STEAMROOT/$PLATFORM/$STEAMEXE" "$@"
|
||||
fi
|
||||
|
||||
STATUS=$?
|
||||
|
||||
if [ $STATUS -eq $MAGIC_RESTART_EXITCODE ]; then
|
||||
exec "$0" "$@"
|
||||
fi
|
||||
exit $STATUS
|
||||
@@ -1,4 +1,17 @@
|
||||
PWD:=""
|
||||
|
||||
direnv:
|
||||
cat .env.tpl | op inject > .env
|
||||
direnv allow
|
||||
|
||||
get_conf:
|
||||
cp ~/Library/Application\ Support/Steam/config/config.vdf config.vdf
|
||||
|
||||
ci_conf_macos:
|
||||
zip - ~/Library/Application\ Support/Steam/config/config.vdf | base64 > config.vdf_b64
|
||||
|
||||
login:
|
||||
./builder_osx/steamcmd +login $STEAM_USR $STEAM_PWD +quit
|
||||
|
||||
build:
|
||||
./builder_osx/steamcmd +login rustunit {{PWD}} +run_app_build ../scripts/hedz.vdf +quit
|
||||
./builder_osx/steamcmd +login $STEAM_USR +run_app_build ../scripts/hedz.vdf +quit
|
||||
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
"verbose" "1" // spew more build details in console
|
||||
|
||||
"SetLive" "alpha"
|
||||
"ContentRoot" "..\content\" // root content folder, relative to location of this file
|
||||
"BuildOutput" "..\output\" // build output folder for build logs and build cache files
|
||||
"ContentRoot" "../content" // root content folder, relative to location of this file
|
||||
"BuildOutput" "../output" // build output folder for build logs and build cache files
|
||||
|
||||
"Depots"
|
||||
{
|
||||
"1603001" // your DepotID
|
||||
{
|
||||
"FileExclusion" "*/.DS_Store"
|
||||
"FileExclusion" "../../../assets/.DS_Store"
|
||||
|
||||
"FileMapping"
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user