Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
87 changes: 61 additions & 26 deletions .github/workflows/build_dist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Build distribution

on:
push:
branches: [ master ]
branches: [ master, 'claude/**' ]
tags: [ '*' ]

env:
Expand All @@ -13,23 +13,39 @@ jobs:
runs-on: ubuntu-latest
container: archlinux/archlinux:multilib-devel
steps:
# Install packages
- run: pacman --noconfirm -Sy sbt jdk-openjdk git mingw-w64 clang nasm rustup python3
# Install packages with retry logic for network issues
- name: Install packages with retry
run: |
# Refresh package database and add fallback mirrors
pacman --noconfirm -Syy || true

# Install packages with retries
for i in {1..3}; do
if pacman --noconfirm -S sbt jdk-openjdk git mingw-w64 clang nasm rustup python3 lib32-gcc-libs lib32-glibc gcc-libs gcc; then
echo "Package installation successful"
exit 0
fi
echo "Attempt $i failed, retrying..."
sleep 5
done

echo "Failed to install packages after 3 attempts"
exit 1
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
toolchain: nightly-2024-11-01
default: true
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
toolchain: nightly-2024-11-01
target: i686-pc-windows-gnu
- uses: actions-rs/toolchain@v1
with:
toolchain: nightly
toolchain: nightly-2024-11-01
target: i686-unknown-linux-gnu

# Initialize git
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- run: git config --global --add safe.directory /__w/MPPatch/MPPatch
Expand All @@ -39,7 +55,7 @@ jobs:
- run: scripts/ci/build-natives_linux.sh

# Upload artifacts
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: mppatch_ci_natives-linux.tar.gz
path: target/mppatch_ci_natives-linux.tar.gz
Expand All @@ -54,13 +70,19 @@ jobs:
with:
distribution: 'liberica'
java-version: '21'
- uses: actions/checkout@v2
- name: Install sbt
run: |
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install -y sbt
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- run: git fetch --prune --unshallow --tags

# Download artifacts
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: mppatch_ci_natives-linux.tar.gz
path: target/mppatch_ci_natives-linux
Expand All @@ -71,7 +93,7 @@ jobs:
- run: scripts/ci/build-ni_linux.sh

# Upload artifacts
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: mppatch_ci_ni-linux
path: target/native-image-linux/*
Expand All @@ -86,25 +108,29 @@ jobs:
with:
distribution: 'liberica'
java-version: '21'
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- run: git fetch --prune --unshallow --tags

# Download artifacts
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: mppatch_ci_natives-linux.tar.gz
path: target/mppatch_ci_natives-linux
- run: mv target/mppatch_ci_natives-linux/* target/
- run: rm -Recurse -Force -Verbose target/mppatch_ci_natives-linux
path: target
- name: Verify tarball location
shell: pwsh
run: |
Write-Host "Verifying tarball exists:"
Get-Item target/mppatch_ci_natives-linux.tar.gz
Write-Host "Tarball is ready for extraction by build script"

# Do the actual build
- uses: ilammy/msvc-dev-cmd@v1
- run: pwsh -file scripts/ci/build-ni_win32.ps1

# Upload artifacts
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: mppatch_ci_ni-win32
path: target/native-image-win32/*
Expand All @@ -119,14 +145,20 @@ jobs:
with:
distribution: 'liberica'
java-version: '21'
- uses: actions/checkout@v2
- name: Install sbt
run: |
echo "deb https://repo.scala-sbt.org/scalasbt/debian all main" | sudo tee /etc/apt/sources.list.d/sbt.list
curl -sL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x2EE0EA64E40A89B84B2DF73499E82A75642AC823" | sudo apt-key add
sudo apt-get update
sudo apt-get install -y sbt
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- run: git fetch --prune --unshallow --tags
- run: sudo apt install libfuse2

# Download artifacts
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: mppatch_ci_ni-linux
path: target/native-image-linux
Expand All @@ -135,7 +167,7 @@ jobs:
- run: scripts/ci/build-installer_linux.sh

# Upload artifacts
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: mppatch_ci_installer-linux
path: target/MPPatch-Installer_*
Expand All @@ -150,23 +182,26 @@ jobs:
with:
distribution: 'liberica'
java-version: '21'
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- run: git fetch --prune --unshallow --tags

# Download artifacts
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: mppatch_ci_ni-win32
path: target/native-image-win32

# Do the actual build
- run: choco install nsis
- name: Add NSIS to PATH
run: echo "C:\Program Files (x86)\NSIS" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
shell: pwsh
- run: pwsh -file scripts/ci/build-installer_win32.ps1

# Upload artifacts
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: mppatch_ci_installer-win32
path: target/MPPatch-Installer_*
Expand All @@ -178,7 +213,7 @@ jobs:
- buildInstallerWindows
steps:
# Initialize git
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Fetch git tags.
Expand All @@ -187,11 +222,11 @@ jobs:
run: 'echo "VERSION_STR=ci_build-$GITHUB_RUN_NUMBER" >> $GITHUB_ENV'

# Download artifacts
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: mppatch_ci_installer-linux
path: mppatch_ci_installer-linux
- uses: actions/download-artifact@v3
- uses: actions/download-artifact@v4
with:
name: mppatch_ci_installer-win32
path: mppatch_ci_installer-win32
Expand Down
Loading