Skip to content

Merge pull request #30 from ShadowJonathan/decrease-idle-usage #102

Merge pull request #30 from ShadowJonathan/decrease-idle-usage

Merge pull request #30 from ShadowJonathan/decrease-idle-usage #102

Workflow file for this run

name: Publish Nightly Release on Commit
on:
push:
branches:
- main # Trigger on pushes to main branch
jobs:
# Windows Build Job
windows-build:
runs-on: ubuntu-latest
steps:
# Step 1: Checkout the code
- name: Checkout code
uses: actions/checkout@v3
# Step 2: Set up .NET for Windows
- name: Set up .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0.x' # Specify your .NET version
# Step 3: Restore dependencies
- name: Restore dependencies
run: dotnet restore
# Step 4: Publish the project as a single file for Windows 64-bit
- name: Publish the application (Windows)
run: dotnet publish -o ./publish --runtime win-x64
# Step 5: Zip the Windows publish folder
- name: Zip the Windows publish folder
run: zip -r ./publish/win64.zip ./publish
# Step 6: Upload the Windows build as an artifact to be used in release
- name: Upload Windows Build Artifact
uses: actions/upload-artifact@v3
with:
name: win64
path: ./publish/win64.zip
# Linux Build Job
linux-build:
runs-on: ubuntu-latest
steps:
# Step 1: Checkout the code
- name: Checkout code
uses: actions/checkout@v3
# Step 2: Set up .NET for Linux
- name: Set up .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: '8.0.x' # Specify your .NET version
# Step 3: Restore dependencies
- name: Restore dependencies
run: dotnet restore
# Step 4: Publish the project as a single file for Linux 64-bit
- name: Publish the application (Linux)
run: dotnet publish -o ./publish --runtime linux-x64
# Step 5: Copy the native library
- name: Copy libsteam_api.so to publish folder
run: cp ./Cove/NativeLibraries/linux64/libsteam_api.so ./publish/
# Step 6: Rename libsteam_api.so to libsteam_api64.so
- name: Rename libsteam_api.so
run: mv ./publish/libsteam_api.so ./publish/libsteam_api64.so
# Step 7: Zip the Linux publish folder
- name: Zip the Linux publish folder
run: zip -r ./publish/linux64.zip ./publish
# Step 8: Upload the Linux build as an artifact to be used in release
- name: Upload Linux Build Artifact
uses: actions/upload-artifact@v3
with:
name: linux64
path: ./publish/linux64.zip
# Create Release Job
create-release:
runs-on: ubuntu-latest
needs: [windows-build, linux-build] # Waits for both builds to finish
steps:
# Step 1: Download artifacts from previous jobs
- name: Download Windows Artifact
uses: actions/download-artifact@v3
with:
name: win64
- name: Download Linux Artifact
uses: actions/download-artifact@v3
with:
name: linux64
# Step 2: Create a new nightly release
- name: Create GitHub Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: "nightly-${{ github.run_number }}" # Static tag name for nightly builds
release_name: "nightly-${{ github.run_number }}" # Unique name for each run
draft: false
prerelease: true # Mark as prerelease if you want to differentiate
# Step 3: Upload Windows artifact to release
- name: Upload Windows Build to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: win64.zip
asset_name: win64.zip
asset_content_type: application/zip
# Step 4: Upload Linux artifact to release
- name: Upload Linux Build to Release
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: linux64.zip
asset_name: linux64.zip
asset_content_type: application/zip