Skip to content

add winarm64 build #281

add winarm64 build

add winarm64 build #281

Workflow file for this run

name: .NET Core Desktop
on:
push:
paths-ignore:
- README.md
workflow_dispatch:
jobs:
cli-ubuntu-x64:
name: cli-ubuntu
runs-on: ubuntu-22.04
outputs:
linux_x64_sha256: ${{ steps.make-appimage.outputs.linux_x64_sha256 }}
version: ${{ steps.gitversion.outputs.SemVer }}
env:
APP_NAME: stalker-gamma-gui
PROJECT_FOLDER: stalker-gamma-cli
PROJECT_NAME: stalker-gamma-cli.csproj
CONFIGURATION: Release
ARCHITECTURE: x64
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Run Csharpier
run: |
dotnet tool restore
dotnet csharpier check .
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: "5.x"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
- name: Make Build
run: make build -C build/linux VERSION=${{ steps.gitversion.outputs.AssemblySemFileVer }} ARCH=${{ env.ARCHITECTURE }}
- name: Download appimagetool
run: curl https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-x86_64.AppImage -Lo appimagetool-aarch64.AppImage
- name: Make AppImage
id: make-appimage
run: |
chmod +x appimagetool-aarch64.AppImage
mkdir -p build/linux/stalker-gamma.AppDir/usr/bin/
cp -r build/linux/build/stalker-gamma-cli/* build/linux/stalker-gamma.AppDir/usr/bin/
./appimagetool-aarch64.AppImage build/linux/stalker-gamma.AppDir stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage
chmod +x stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage
hash=$(sha256sum stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage | cut -d ' ' -f 1)
echo "linux_x64_sha256=$hash" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2.4.2
if: github.ref_type == 'tag'
with:
files: stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage
token: ${{ secrets.STALKER_GAMMA_CLI_SECRET }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: stalker-gamma+linux.${{ env.ARCHITECTURE }}
path: build/linux/build/stalker-gamma-cli
compression-level: 9
cli-ubuntu-arm64:
name: cli-ubuntu-arm64
runs-on: ubuntu-22.04-arm
outputs:
linux_arm64_sha256: ${{ steps.make-appimage.outputs.linux_arm64_sha256 }}
version: ${{ steps.gitversion.outputs.SemVer }}
env:
APP_NAME: stalker-gamma-gui
PROJECT_FOLDER: stalker-gamma-cli
PROJECT_NAME: stalker-gamma-cli.csproj
CONFIGURATION: Release
ARCHITECTURE: arm64
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Run Csharpier
run: |
dotnet tool restore
dotnet csharpier check .
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: "5.x"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
- name: Make Build
run: make build -C build/linux VERSION=${{ steps.gitversion.outputs.AssemblySemFileVer }} ARCH=${{ env.ARCHITECTURE }}
- name: Download appimagetool
run: curl https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-aarch64.AppImage -Lo appimagetool-aarch64.AppImage
- name: Make AppImage
id: make-appimage
run: |
chmod +x appimagetool-aarch64.AppImage
mkdir -p build/linux/stalker-gamma.AppDir/usr/bin/
cp -r build/linux/build/stalker-gamma-cli/* build/linux/stalker-gamma.AppDir/usr/bin/
./appimagetool-aarch64.AppImage build/linux/stalker-gamma.AppDir stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage
chmod +x stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage
hash=$(sha256sum stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage | cut -d ' ' -f 1)
echo "linux_arm64_sha256=$hash" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2.4.2
if: github.ref_type == 'tag'
with:
files: stalker-gamma+linux.${{ env.ARCHITECTURE }}.AppImage
token: ${{ secrets.STALKER_GAMMA_CLI_SECRET }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: stalker-gamma+linux.${{ env.ARCHITECTURE }}
path: build/linux/build/stalker-gamma-cli
compression-level: 9
cli-macos-arm64:
name: cli-macos-arm64
runs-on: macos-15
outputs:
macos_arm64_sha256: ${{ steps.build.outputs.macos_arm64_sha256 }}
version: ${{ steps.gitversion.outputs.SemVer }}
env:
APP_NAME: stalker-gamma-gui
PROJECT_FOLDER: stalker-gamma-cli
PROJECT_NAME: stalker-gamma-cli.csproj
CONFIGURATION: Release
ARCHITECTURE: arm64
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Run Csharpier
run: |
dotnet tool restore
dotnet csharpier check .
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: "5.x"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
- name: Make Build
id: build
run: |
make build -C build/mac VERSION=${{ steps.gitversion.outputs.AssemblySemFileVer }} ARCH=${{ env.ARCHITECTURE }}
make archive VERSION=${{ steps.gitversion.outputs.SemVer }} -C build/mac ARCH=${{ env.ARCHITECTURE }}
hash=$(sha256sum --quiet build/mac/stalker-gamma+mac.arm64.tar.gz)
echo "macos_arm64_sha256=$hash" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2.4.2
if: github.ref_type == 'tag'
with:
files: build/mac/stalker-gamma+mac.arm64.tar.gz
token: ${{ secrets.STALKER_GAMMA_CLI_SECRET }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: stalker-gamma+mac.arm64
path: build/mac/build/stalker-gamma
compression-level: 9
cli-macos-x64:
name: cli-macos-x64
runs-on: macos-15-intel
outputs:
macos_x64_sha256: ${{ steps.build.outputs.macos_x64_sha256 }}
version: ${{ steps.gitversion.outputs.SemVer }}
env:
APP_NAME: stalker-gamma-gui
PROJECT_FOLDER: stalker-gamma-cli
PROJECT_NAME: stalker-gamma-cli.csproj
CONFIGURATION: Release
ARCHITECTURE: x64
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install .NET Core
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Run Csharpier
run: |
dotnet tool restore
dotnet csharpier check .
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: "5.x"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
- name: Make Build
id: build
run: |
make build -C build/mac VERSION=${{ steps.gitversion.outputs.AssemblySemFileVer }} ARCH=${{ env.ARCHITECTURE }}
make archive VERSION=${{ steps.gitversion.outputs.SemVer }} -C build/mac ARCH=${{ env.ARCHITECTURE }}
hash=$(sha256sum --quiet build/mac/stalker-gamma+mac.x64.tar.gz)
echo "macos_x64_sha256=$hash" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v2.4.2
if: github.ref_type == 'tag'
with:
files: build/mac/stalker-gamma+mac.x64.tar.gz
token: ${{ secrets.STALKER_GAMMA_CLI_SECRET }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: stalker-gamma+mac.x64
path: build/mac/build/stalker-gamma
compression-level: 9
cli-windows:
name: cli-windows
runs-on: windows-latest
outputs:
version: ${{ steps.gitversion.outputs.SemVer }}
env:
APP_NAME: stalker-gamma-gui
PROJECT_FOLDER: stalker-gamma-cli
PROJECT_NAME: stalker-gamma-cli.csproj
CONFIGURATION: Release
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Run Csharpier
run: |
dotnet tool restore
dotnet csharpier check .
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: "5.x"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
- name: Build CLI
run: build/win/build.bat ${{ steps.gitversion.outputs.SemVer }}
- name: Create Release
uses: softprops/action-gh-release@v2.4.2
if: github.ref_type == 'tag'
with:
files: stalker-gamma+win.x64.zip
token: ${{ secrets.STALKER_GAMMA_CLI_SECRET }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: stalker-gamma+win.x64
path: build/win/build/stalker-gamma-cli
compression-level: 9
cli-windows-arm64:
name: cli-windows-arm64
runs-on: windows-11-arm
outputs:
version: ${{ steps.gitversion.outputs.SemVer }}
env:
APP_NAME: stalker-gamma-gui
PROJECT_FOLDER: stalker-gamma-cli
PROJECT_NAME: stalker-gamma-cli.csproj
CONFIGURATION: Release
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Run Csharpier
run: |
dotnet tool restore
dotnet csharpier check .
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: "5.x"
- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0
- name: Build CLI
run: build/win/build.bat ${{ steps.gitversion.outputs.SemVer }} arm64
- name: Create Release
uses: softprops/action-gh-release@v2.4.2
if: github.ref_type == 'tag'
with:
files: stalker-gamma+win.arm64.zip
token: ${{ secrets.STALKER_GAMMA_CLI_SECRET }}
- name: Upload
uses: actions/upload-artifact@v4
with:
name: stalker-gamma+win.arm64
path: build/win/build/stalker-gamma-cli
compression-level: 9
update-aur:
name: update-aur
runs-on: ubuntu-22.04
needs: [cli-ubuntu-arm64, cli-ubuntu-x64]
if: github.ref_type == 'tag'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Generate PKGBUILD
run: |
PATH_TO_PKGBUILD="PKGBUILD"
chmod +x "./build/update-pkgbuild.sh"
./build/update-pkgbuild.sh "${{ needs.cli-ubuntu-arm64.outputs.version }}" "${{ needs.cli-ubuntu-arm64.outputs.linux_arm64_sha256 }}" "${{ needs.cli-ubuntu-x64.outputs.linux_x64_sha256 }}" "$PATH_TO_PKGBUILD"
- name: Publish AUR package
uses: KSXGitHub/github-actions-deploy-aur@v4.1.2
with:
pkgname: stalker-gamma-cli-bin
pkgbuild: ./PKGBUILD
commit_username: ${{ secrets.AUR_USERNAME }}
commit_email: ${{ secrets.AUR_EMAIL }}
ssh_private_key: ${{ secrets.AUR_SSH_KEY_PRIVATE }}
commit_message: Update AUR package
ssh_keyscan_types: ed25519
update-chocolatey:
name: update-chocolatey
runs-on: windows-latest
needs: [cli-windows, cli-windows-arm64]
if: github.ref_type == 'tag'
steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Create and Push Chocolatey Package
if: github.ref_type == 'tag'
run: build/win/chocolatey.bat ${{ needs.cli-windows.outputs.version }} ${{ secrets.CHOCOLATEY_API_KEY }}
update-homebrew:
name: update-homebrew
runs-on: ubuntu-22.04
needs: [cli-macos-x64, cli-macos-arm64]
if: github.ref_type == 'tag'
steps:
- name: Checkout source repo
uses: actions/checkout@v6
- name: Checkout target repo
uses: actions/checkout@v6
with:
repository: FaithBeam/homebrew-stalker-gamma
token: ${{ secrets.HOMEBREW_REPO_TOKEN }}
path: homebrew-stalker-gamma
- name: Update Homebrew Cask
run: |
PATH_TO_CASK="homebrew-stalker-gamma/Casks/stalker-gamma.rb"
chmod +x "./build/update-cask.sh"
./build/update-cask.sh "${{ needs.cli-macos-arm64.outputs.version }}" "${{ needs.cli-macos-arm64.outputs.macos_arm64_sha256 }}" "${{ needs.cli-macos-x64.outputs.macos_x64_sha256 }}" "$PATH_TO_CASK"
git -C homebrew-stalker-gamma config user.name "github-actions[bot]"
git -C homebrew-stalker-gamma config user.email "github-actions[bot]@users.noreply.github.com"
git -C homebrew-stalker-gamma add .
git -C homebrew-stalker-gamma commit -m "Update $PATH_TO_CASK"
git -C homebrew-stalker-gamma push