mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-05-28 17:16:29 +03:00
524 lines
19 KiB
YAML
524 lines
19 KiB
YAML
name: Build Nightly
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'develop'
|
|
|
|
workflow_dispatch:
|
|
|
|
permissions: write-all
|
|
|
|
jobs:
|
|
release:
|
|
name: Create Nightly Release
|
|
runs-on: ubuntu-22.04
|
|
outputs:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
version: ${{ steps.tag.outputs.version }}
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Set Tag
|
|
id: tag
|
|
run: |
|
|
echo "version=nightly" >> "$GITHUB_OUTPUT"
|
|
- name: Update Tag
|
|
run: |
|
|
git tag -f ${{ steps.tag.outputs.version }}
|
|
git push -f origin ${{ steps.tag.outputs.version }}
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ steps.tag.outputs.version }}
|
|
name: ecode ${{ steps.tag.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
generate_release_notes: false
|
|
body: |
|
|
Builds that include most recent changes as they happen. For stable releases check the whole list of [releases](https://github.com/SpartanJ/ecode/releases).
|
|
|
|
build_linux_x86_64:
|
|
name: Linux x86_64 Nightly
|
|
needs: release
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- arch: x86_64
|
|
container: ubuntu-22.04
|
|
runs-on: ${{ matrix.config.container }}
|
|
container:
|
|
image: ubuntu:20.04
|
|
env:
|
|
CC: clang-20
|
|
CXX: clang++-20
|
|
steps:
|
|
- name: Install essentials
|
|
run: |
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get update
|
|
apt-get install -y --no-install-recommends software-properties-common build-essential git ca-certificates wget lsb-release gnupg
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive', set-safe-directory: true }
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
echo "RARCH=$(uname -m)" >> "$GITHUB_ENV"
|
|
echo $(ldd --version)
|
|
- name: Mark Git directory as safe
|
|
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
- name: Patch commit number
|
|
run: |
|
|
bash projects/scripts/patch_commit_number.sh
|
|
- name: Install dependencies
|
|
shell: bash
|
|
run: |
|
|
apt-get install -y curl libfuse2 fuse premake4 mesa-common-dev libgl1-mesa-dev sudo file appstream libdw-dev
|
|
curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
|
|
apt-get install -y nodejs
|
|
add-apt-repository -y universe
|
|
add-apt-repository -y multiverse
|
|
|
|
wget https://apt.llvm.org/llvm.sh
|
|
chmod +x llvm.sh
|
|
./llvm.sh 20
|
|
|
|
apt-get install -y libc++-20-dev libc++abi-20-dev
|
|
|
|
update-alternatives --install /usr/bin/cc cc /usr/bin/clang-20 30
|
|
update-alternatives --set cc /usr/bin/clang-20
|
|
update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-20 30
|
|
update-alternatives --set c++ /usr/bin/clang++-20
|
|
|
|
bash projects/linux/scripts/install_sdl2.sh
|
|
- name: Build ecode
|
|
run: |
|
|
export CC="clang-20"
|
|
export CXX="clang++-20 -stdlib=libc++"
|
|
export LDFLAGS="-stdlib=libc++"
|
|
|
|
bash projects/linux/ecode/build.app.sh --with-static-cpp --version ${{ env.INSTALL_REF }} --arch ${{ matrix.config.arch }}
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/linux/ecode/ecode-linux-${{ env.INSTALL_REF }}-${{ env.RARCH }}.AppImage
|
|
projects/linux/ecode/ecode-linux-${{ env.INSTALL_REF }}-${{ env.RARCH }}.tar.gz
|
|
|
|
build_linux_arm64:
|
|
name: Linux arm64 Nightly
|
|
needs: release
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- arch: aarch64
|
|
container: ubuntu-22.04
|
|
runs-on: ${{ matrix.config.container }}
|
|
env:
|
|
CC: gcc
|
|
CXX: g++
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
echo "/usr/lib/ccache" >> "$GITHUB_PATH"
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
echo "CC=aarch64-linux-gnu-gcc" >> "$GITHUB_ENV"
|
|
echo "CXX=aarch64-linux-gnu-g++" >> "$GITHUB_ENV"
|
|
echo "AR=aarch64-linux-gnu-ar" >> "$GITHUB_ENV"
|
|
echo "RANLIB=aarch64-linux-gnu-ranlib" >> "$GITHUB_ENV"
|
|
echo "STRIP=aarch64-linux-gnu-strip" >> "$GITHUB_ENV"
|
|
echo "RARCH=arm64" >> "$GITHUB_ENV" >> "$GITHUB_ENV"
|
|
echo $(ldd --version)
|
|
echo $(gcc --version)
|
|
- name: Update Packages
|
|
run: |
|
|
codename=$(lsb_release -cs)
|
|
url="http://ports.ubuntu.com/ubuntu-ports"
|
|
repos="main restricted universe multiverse"
|
|
echo "deb [arch=arm64] $url $codename $repos" > arm64.list
|
|
echo "deb [arch=arm64] $url $codename-backports $repos" >> arm64.list
|
|
echo "deb [arch=arm64] $url $codename-security $repos" >> arm64.list
|
|
echo "deb [arch=arm64] $url $codename-updates $repos" >> arm64.list
|
|
sudo mv arm64.list /etc/apt/sources.list.d/
|
|
sudo apt-get update
|
|
sudo dpkg --add-architecture arm64
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get install -y premake4 libfuse2 fuse gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
|
|
bash projects/linux/scripts/install_sdl2.sh --aarch64
|
|
- name: Build ecode
|
|
run: |
|
|
bash projects/scripts/patch_commit_number.sh
|
|
bash projects/linux/ecode/build.app.sh --version ${{ env.INSTALL_REF }} --arch ${{ matrix.config.arch }}
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/linux/ecode/ecode-linux-${{ env.INSTALL_REF }}-${{ env.RARCH }}.AppImage
|
|
projects/linux/ecode/ecode-linux-${{ env.INSTALL_REF }}-${{ env.RARCH }}.tar.gz
|
|
|
|
build_windows_cross:
|
|
name: Windows x86_64 Nightly
|
|
needs: release
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- compiler: default
|
|
arch: x86_64
|
|
container: ubuntu-22.04
|
|
runs-on: ${{ matrix.config.container }}
|
|
env:
|
|
CC: gcc
|
|
CXX: g++
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
echo "RARCH=$(uname -m)" >> "$GITHUB_ENV"
|
|
- name: Update Packages
|
|
run: |
|
|
sudo add-apt-repository -y universe
|
|
sudo add-apt-repository -y multiverse
|
|
sudo apt-get update
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get install -y premake4 libfuse2 fuse mingw-w64 gcc-12 g++-12
|
|
wget https://cdn.ensoft.dev/eepp-assets/premake-5.0.0-beta6-linux.tar.gz
|
|
tar xvzf premake-5.0.0-beta6-linux.tar.gz
|
|
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 10
|
|
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 10
|
|
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30
|
|
sudo update-alternatives --set cc /usr/bin/gcc
|
|
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30
|
|
sudo update-alternatives --set c++ /usr/bin/g++
|
|
sudo update-alternatives --config gcc
|
|
sudo update-alternatives --config g++
|
|
- name: Build ecode
|
|
run: |
|
|
bash projects/scripts/patch_commit_number.sh
|
|
bash projects/mingw32/ecode/build.app.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/mingw32/ecode/ecode-windows-${{ env.INSTALL_REF }}-${{ env.RARCH }}.zip
|
|
|
|
build_windows_arm64_cross:
|
|
name: Windows arm64 Nightly
|
|
needs: release
|
|
strategy:
|
|
matrix:
|
|
config:
|
|
- compiler: default
|
|
arch: arm64
|
|
container: ubuntu-22.04
|
|
runs-on: ${{ matrix.config.container }}
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
- name: Update Packages
|
|
run: |
|
|
sudo add-apt-repository -y universe
|
|
sudo add-apt-repository -y multiverse
|
|
sudo apt-get update
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get install -y libfuse2 fuse
|
|
wget https://cdn.ensoft.dev/eepp-assets/premake-5.0.0-beta6-linux.tar.gz
|
|
tar xvzf premake-5.0.0-beta6-linux.tar.gz
|
|
- name: Build ecode
|
|
run: |
|
|
bash projects/scripts/patch_commit_number.sh
|
|
bash projects/mingw32/ecode/build.app.sh --arch=arm64 --version ${{ env.INSTALL_REF }}
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/mingw32/ecode/ecode-windows-${{ env.INSTALL_REF }}-arm64.zip
|
|
|
|
build_macos:
|
|
name: macOS arm64 Nightly
|
|
needs: release
|
|
runs-on: macos-14
|
|
strategy:
|
|
matrix:
|
|
arch: [arm64]
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
MACOS_CERTIFICATE_P12_B64: ${{ secrets.MACOS_CERTIFICATE_P12_B64 }}
|
|
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
|
|
MACOS_APPLE_ID: ${{ secrets.MACOS_APPLE_ID }}
|
|
MACOS_NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
|
|
MACOS_TEAM_ID: ${{ secrets.MACOS_TEAM_ID }}
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: System Information
|
|
run: |
|
|
system_profiler SPSoftwareDataType
|
|
bash --version
|
|
gcc -v
|
|
xcodebuild -version
|
|
uname -a
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
- name: Install Dependencies
|
|
run: |
|
|
brew install bash sdl2 create-dmg premake
|
|
- name: Build
|
|
run: |
|
|
bash projects/scripts/patch_commit_number.sh
|
|
bash projects/macos/ecode/build.app.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Sign Application
|
|
if: env.MACOS_CERTIFICATE_P12_B64 != ''
|
|
working-directory: projects/macos/ecode
|
|
run: |
|
|
bash ./sign.sh ecode.app
|
|
- name: Create DMG Image
|
|
run: |
|
|
bash projects/macos/ecode/create.dmg.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Notarize DMG
|
|
if: env.MACOS_CERTIFICATE_P12_B64 != ''
|
|
working-directory: projects/macos/ecode
|
|
run: |
|
|
DMG_NAME="ecode-macos-${{ env.INSTALL_REF }}-arm64.dmg"
|
|
bash ./sign.sh "$DMG_NAME"
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/macos/ecode/ecode-macos-${{ env.INSTALL_REF }}-arm64.dmg
|
|
|
|
build_macos_cross:
|
|
name: macOS x86_64 Nightly
|
|
needs: release
|
|
runs-on: macos-14
|
|
strategy:
|
|
matrix:
|
|
arch: [arm64]
|
|
env:
|
|
CC: clang
|
|
CXX: clang++
|
|
MACOS_CERTIFICATE_P12_B64: ${{ secrets.MACOS_CERTIFICATE_P12_B64 }}
|
|
MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }}
|
|
MACOS_APPLE_ID: ${{ secrets.MACOS_APPLE_ID }}
|
|
MACOS_NOTARIZATION_PASSWORD: ${{ secrets.MACOS_NOTARIZATION_PASSWORD }}
|
|
MACOS_TEAM_ID: ${{ secrets.MACOS_TEAM_ID }}
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: System Information
|
|
run: |
|
|
system_profiler SPSoftwareDataType
|
|
bash --version
|
|
gcc -v
|
|
xcodebuild -version
|
|
uname -a
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
- name: Install Dependencies
|
|
run: |
|
|
brew install bash create-dmg premake p7zip
|
|
curl -OL https://github.com/libsdl-org/SDL/releases/download/release-2.32.10/SDL2-2.32.10.dmg
|
|
hdiutil attach SDL2-2.32.10.dmg
|
|
sudo cp -r /Volumes/SDL2/SDL2.framework /Library/Frameworks/
|
|
hdiutil detach /Volumes/SDL2
|
|
- name: Build
|
|
run: |
|
|
bash projects/scripts/patch_commit_number.sh
|
|
bash projects/macos/ecode/cross.build.app.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Sign Application
|
|
if: env.MACOS_CERTIFICATE_P12_B64 != ''
|
|
working-directory: projects/macos/ecode
|
|
run: |
|
|
bash ./sign.sh ecode.app
|
|
- name: Create DMG Image
|
|
run: |
|
|
bash projects/macos/ecode/cross.create.dmg.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Notarize DMG
|
|
if: env.MACOS_CERTIFICATE_P12_B64 != ''
|
|
working-directory: projects/macos/ecode
|
|
run: |
|
|
DMG_NAME="ecode-macos-${{ env.INSTALL_REF }}-x86_64.dmg"
|
|
bash ./sign.sh "$DMG_NAME"
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/macos/ecode/ecode-macos-${{ env.INSTALL_REF }}-x86_64.dmg
|
|
|
|
build_freebsd_x86_64:
|
|
name: FreeBSD x86_64 Nightly
|
|
needs: release
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
echo "RARCH=$(uname -m)" >> "$GITHUB_ENV"
|
|
- uses: vmactions/freebsd-vm@v1
|
|
env:
|
|
INSTALL_REF: ${{ needs.release.outputs.version }}
|
|
with:
|
|
release: '14.1'
|
|
envs: 'INSTALL_REF'
|
|
sync: sshfs
|
|
usesh: true
|
|
mem: 8192
|
|
disable-cache: true
|
|
prepare: |
|
|
pkg upgrade -y
|
|
pkg install -y bash pcre2 git sdl2 curl premake5 gsed gmake
|
|
run: |
|
|
export CC=clang
|
|
export CXX=clang++
|
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
bash projects/scripts/patch_commit_number.sh
|
|
sh projects/freebsd/ecode/build.app.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/freebsd/ecode/ecode-freebsd-${{ env.INSTALL_REF }}-x86_64.tar.gz
|
|
|
|
build_haiku_x86_64:
|
|
name: Haiku x86_64 Nightly
|
|
needs: release
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Set Environment Variables
|
|
run: |
|
|
echo "INSTALL_REF=${{ needs.release.outputs.version }}" >> "$GITHUB_ENV"
|
|
echo "RARCH=$(uname -m)" >> "$GITHUB_ENV"
|
|
- uses: vmactions/haiku-vm@v1
|
|
env:
|
|
INSTALL_REF: ${{ needs.release.outputs.version }}
|
|
with:
|
|
envs: 'INSTALL_REF'
|
|
usesh: true
|
|
mem: 8192
|
|
disable-cache: true
|
|
prepare: |
|
|
pkgman install -y libsdl2 libsdl2_devel git gcc premake5
|
|
run: |
|
|
git config --global --add safe.directory "$GITHUB_WORKSPACE"
|
|
bash projects/scripts/patch_commit_number.sh
|
|
sh projects/haiku/ecode/build.app.sh --version ${{ env.INSTALL_REF }}
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
projects/haiku/ecode/ecode-haiku-${{ env.INSTALL_REF }}-x86_64.tar.gz
|
|
|
|
build_windows_msvc:
|
|
name: Windows x86_64 MSVC Nightly
|
|
needs: release
|
|
runs-on: windows-latest
|
|
env:
|
|
MSBUILD_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin
|
|
steps:
|
|
- name: Configure Git
|
|
shell: pwsh
|
|
run: |
|
|
git config --system core.autocrlf false
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Build
|
|
shell: pwsh
|
|
run: |
|
|
.\projects\scripts\patch_commit_number.ps1
|
|
.\projects\windows\ecode\build.app.ps1
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
./projects/windows/ecode/ecode-windows-nightly-msvc-x86_64.zip
|
|
./projects/windows/ecode/ecode-windows-nightly-msvc-x86_64-pdb.zip
|
|
|
|
build_windows_arm64_msvc:
|
|
name: Windows arm64 MSVC Nightly
|
|
needs: release
|
|
runs-on: windows-latest
|
|
env:
|
|
MSBUILD_PATH: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Current\Bin
|
|
steps:
|
|
- name: Configure Git
|
|
shell: pwsh
|
|
run: |
|
|
git config --system core.autocrlf false
|
|
- name: Checkout Code
|
|
uses: actions/checkout@v6
|
|
with: { fetch-depth: 0, submodules: 'recursive' }
|
|
- name: Build
|
|
shell: pwsh
|
|
run: |
|
|
.\projects\scripts\patch_commit_number.ps1
|
|
.\projects\windows\ecode\build.app.ps1 -arch arm64
|
|
- name: Upload Files
|
|
uses: softprops/action-gh-release@v3
|
|
with:
|
|
tag_name: ${{ needs.release.outputs.version }}
|
|
draft: false
|
|
prerelease: true
|
|
files: |
|
|
./projects/windows/ecode/ecode-windows-nightly-msvc-arm64.zip
|
|
./projects/windows/ecode/ecode-windows-nightly-msvc-arm64-pdb.zip
|