Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions .github/workflows/build-linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
name: Build Linux Packages

on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_call:
inputs:
version:
required: true
type: string

jobs:
build-unix:
uses: ./.github/workflows/build-unix.yml
with:
version: ${{ inputs.version || 'dev' }}

build-rpm:
needs: build-unix
strategy:
matrix:
include:
- arch: amd64
runner: ubuntu-latest
- arch: arm64
runner: ubuntu-24.04-arm

runs-on: ${{ matrix.runner }}
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Download agent artifact
uses: actions/download-artifact@v4
with:
name: safechain-ultimate-linux-${{ matrix.arch }}
path: bin

- name: Download agent ui artifact
uses: actions/download-artifact@v4
with:
name: safechain-ultimate-ui-linux-${{ matrix.arch }}
path: bin

- name: Download proxy artifact
uses: actions/download-artifact@v4
with:
name: safechain-proxy-linux-${{ matrix.arch }}
path: bin

- name: Verify binaries exist
run: |
ls -lh bin/
ls -lh bin/safechain-ultimate-linux-${{ matrix.arch }}
ls -lh bin/safechain-ultimate-ui-linux-${{ matrix.arch }}
ls -lh bin/safechain-proxy-linux-${{ matrix.arch }}

- name: Install RPM tools
run: sudo apt-get update && sudo apt-get install -y rpm

- name: Build RPM
run: |
cd packaging/rpm
./build-rpm.sh -v "${{ inputs.version || 'dev' }}" -a "${{ matrix.arch }}" -b "../../bin" -o "../../dist"

- name: Rename package
run: |
mv dist/SafeChainUltimate-${{ inputs.version || 'dev' }}-${{ matrix.arch }}.rpm dist/SafeChainUltimate-${{ matrix.arch }}.rpm

- name: Upload RPM artifact
uses: actions/upload-artifact@v4
with:
name: SafeChainUltimate-${{ matrix.arch }}.rpm
path: dist/SafeChainUltimate-${{ matrix.arch }}.rpm
28 changes: 18 additions & 10 deletions .github/workflows/build-unix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,18 @@ jobs:
strategy:
matrix:
include:
- arch: amd64
- os: darwin
arch: amd64
runner: macos-14
- arch: arm64
- os: darwin
arch: arm64
runner: macos-14
- os: linux
arch: amd64
runner: ubuntu-latest
- os: linux
arch: arm64
runner: ubuntu-24.04-arm

runs-on: ${{ matrix.runner }}
steps:
Expand All @@ -36,26 +44,26 @@ jobs:
- name: Run tests
run: make test

- name: Build binaries for darwin/${{ matrix.arch }}
run: make build-darwin-${{ matrix.arch }} VERSION="${{ inputs.version || 'dev' }}"
- name: Build binaries for ${{ matrix.os }}/${{ matrix.arch }}
run: make build-${{ matrix.os }}-${{ matrix.arch }} VERSION="${{ inputs.version || 'dev' }}"

- name: Prepare artifacts
run: |
mv bin/safechain-ultimate-darwin-${{ matrix.arch }} safechain-ultimate-darwin-${{ matrix.arch }}
mv bin/safechain-ultimate-ui-darwin-${{ matrix.arch }} safechain-ultimate-ui-darwin-${{ matrix.arch }}
mv bin/safechain-ultimate-${{ matrix.os }}-${{ matrix.arch }} safechain-ultimate-${{ matrix.os }}-${{ matrix.arch }}
mv bin/safechain-ultimate-ui-${{ matrix.os }}-${{ matrix.arch }} safechain-ultimate-ui-${{ matrix.os }}-${{ matrix.arch }}

- name: Upload safechain-ultimate artifact
uses: actions/upload-artifact@v4
with:
name: safechain-ultimate-darwin-${{ matrix.arch }}
name: safechain-ultimate-${{ matrix.os }}-${{ matrix.arch }}
path: |
safechain-ultimate-darwin-${{ matrix.arch }}
safechain-ultimate-${{ matrix.os }}-${{ matrix.arch }}
- name: Upload safechain-ultimate-ui artifact
uses: actions/upload-artifact@v4
with:
name: safechain-ultimate-ui-darwin-${{ matrix.arch }}
name: safechain-ultimate-ui-${{ matrix.os }}-${{ matrix.arch }}
path: |
safechain-ultimate-ui-darwin-${{ matrix.arch }}
safechain-ultimate-ui-${{ matrix.os }}-${{ matrix.arch }}

build-unix-proxy:
strategy:
Expand Down
18 changes: 17 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: build build-release build-darwin-amd64 build-darwin-arm64 build-windows-amd64 build-windows-arm64 build-proxy build-pkg build-pkg-sign-local install-pkg uninstall-pkg clean test run help
.PHONY: build build-release build-darwin-amd64 build-darwin-arm64 build-linux-amd64 build-linux-arm64 build-windows-amd64 build-windows-arm64 build-proxy build-pkg build-pkg-sign-local install-pkg uninstall-pkg build-rpm clean test run help

BINARY_NAME=safechain-ultimate
BINARY_NAME_UI=safechain-ultimate-ui
Expand Down Expand Up @@ -82,6 +82,12 @@ build-darwin-amd64:
build-darwin-arm64:
@$(MAKE) GOOS=darwin GOARCH=arm64 build-release

build-linux-amd64:
@$(MAKE) GOOS=linux GOARCH=amd64 build-release

build-linux-arm64:
@$(MAKE) GOOS=linux GOARCH=arm64 build-release

build-windows-amd64:
@$(MAKE) GOOS=windows GOARCH=amd64 build-release

Expand All @@ -105,6 +111,16 @@ else
@exit 1
endif

build-rpm:
ifeq ($(DETECTED_OS),linux)
@echo "Building Linux RPM installer..."
@cd packaging/rpm && ./build-rpm.sh -v $(VERSION) -a $(DETECTED_ARCH) -b ../../$(BIN_DIR) -o ../../$(DIST_DIR)
@echo "RPM built in $(DIST_DIR)/"
else
@echo "Error: RPM building is only supported on Linux"
@exit 1
endif

build-pkg-sign-local:
ifeq ($(DETECTED_OS),darwin)
@echo "Building complete macOS package..."
Expand Down
Loading
Loading