diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8e1ea8e..4721601c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,21 +7,9 @@ on: branches: [develop] workflow_dispatch: jobs: - build: - name: Build - strategy: - fail-fast: false - matrix: - include: - - os: ubuntu-latest - platform: linux-x64 - - os: windows-latest - platform: win-x64 - - os: macos-latest - platform: osx-x64 - - os: macos-latest - platform: osx-arm64 - runs-on: ${{ matrix.os }} + build-windows: + name: Build Windows x64 + runs-on: windows-latest steps: - name: Checkout sources uses: actions/checkout@v4 @@ -34,9 +22,74 @@ jobs: - name: Build run: dotnet build -c Release - name: Publish - run: dotnet publish src/SourceGit.csproj -c Release -o publish -r ${{ matrix.platform }} -p:PublishAot=true -p:PublishTrimmed=true -p:TrimMode=link --self-contained + 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: ${{ matrix.platform }} + 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: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: sourcegit.osx-x64 + path: publish + 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: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: sourcegit.osx-arm64 + path: publish + 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 osx-arm64 -p:PublishAot=true -p:PublishTrimmed=true -p:TrimMode=link --self-contained + - name: Rename Executable File + run: mv publish/SourceGit publish/sourcegit + - name: Upload Artifact + uses: actions/upload-artifact@v4 + with: + name: sourcegit.linux-x64 path: publish