name: Continuous Integration on: push: branches: - develop pull_request: branches: [develop] workflow_dispatch: jobs: build-windows: name: Build Windows x64 runs-on: windows-latest steps: - name: Checkout sources uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Build run: dotnet build -c Release - name: Publish run: dotnet publish src/SourceGit.csproj -c Release -o publish -r win-x64 -p:PublishAot=true -p:PublishTrimmed=true -p:TrimMode=link --self-contained - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: sourcegit.win-x64 path: publish build-macos-intel: name: Build macOS (Intel) runs-on: macos-latest steps: - name: Checkout sources uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Build run: dotnet build -c Release - name: Publish run: dotnet publish src/SourceGit.csproj -c Release -o publish -r osx-x64 -p:PublishAot=true -p:PublishTrimmed=true -p:TrimMode=link --self-contained - name: Packing Program run: tar -cvf sourcegit.osx-x64.tar publish/ - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: sourcegit.osx-x64 path: sourcegit.osx-x64.tar build-macos-arm64: name: Build macOS (Apple Silicon) runs-on: macos-latest steps: - name: Checkout sources uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Build run: dotnet build -c Release - name: Publish run: dotnet publish src/SourceGit.csproj -c Release -o publish -r osx-arm64 -p:PublishAot=true -p:PublishTrimmed=true -p:TrimMode=link --self-contained - name: Packing Program run: tar -cvf sourcegit.osx-arm64.tar publish/ - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: sourcegit.osx-arm64 path: sourcegit.osx-arm64.tar build-linux: name: Build Linux runs-on: ubuntu-latest steps: - name: Checkout sources uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup .NET uses: actions/setup-dotnet@v4 with: dotnet-version: 8.0.x - name: Build run: dotnet build -c Release - name: Publish run: dotnet publish src/SourceGit.csproj -c Release -o publish -r linux-x64 -p:PublishAot=true -p:PublishTrimmed=true -p:TrimMode=link --self-contained - name: Rename Executable File run: mv publish/SourceGit publish/sourcegit - name: Packing Program run: tar -cvf sourcegit.linux-x64.tar publish/ - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: sourcegit.linux-x64 path: sourcegit.linux-x64.tar