Skip to content

Add GH workflow for Mac ARM, Intel, and Linux build #16

Add GH workflow for Mac ARM, Intel, and Linux build

Add GH workflow for Mac ARM, Intel, and Linux build #16

name: MOR Agents Build Linux
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
- name: Build with PyInstaller
run: |
pyinstaller --name="MORagents" --add-data "images/moragents.png:images" main.py
- name: Create Debian package
run: |
mkdir -p debian/DEBIAN
mkdir -p debian/usr/bin
mkdir -p debian/usr/share/applications
mkdir -p debian/usr/share/icons/hicolor/256x256/apps
cp -r dist/MORagents/* debian/usr/bin/
cp images/moragents.png debian/usr/share/icons/hicolor/256x256/apps/moragents.png
echo "[Desktop Entry]
Name=MORagents
Exec=/usr/bin/MORagents
Icon=moragents
Type=Application
Categories=Utility;" > debian/usr/share/applications/moragents.desktop
echo "Package: moragents
Version: 1.0
Section: utils
Priority: optional
Architecture: amd64
Maintainer: LachsBagel
Description: MORagents application
MORagents is a desktop application for AI agents." > debian/DEBIAN/control
dpkg-deb --build debian moragents.deb
- name: Create setup script
run: |
cat << EOF > moragents-setup.sh
#!/bin/bash
set -e
# Colors for output
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# Function to check if a command exists
command_exists() {
command -v "$1" >/dev/null 2>&1
}
# Install curl if not present
if ! command_exists curl; then
echo -e "${YELLOW}Installing curl...${NC}"
sudo apt-get update
sudo apt-get install -y curl
fi
# Install Docker if not present
if ! command_exists docker; then
echo -e "${YELLOW}Installing Docker...${NC}"
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER
sudo systemctl enable docker
sudo systemctl start docker
else
echo -e "${GREEN}Docker is already installed.${NC}"
fi
# Pull necessary Docker images
echo -e "${YELLOW}Pulling Docker images...${NC}"
sudo docker pull morpheusai/nginx-agent:latest
sudo docker pull morpheusai/agents:latest
# Start Docker containers
echo -e "${YELLOW}Starting Docker containers...${NC}"
sudo docker run -d --name agents -p 8080:5000 --restart always -v /var/lib/agents -v /app/src morpheusai/agents:latest
sudo docker run -d --name nginx -p 3333:80 morpheusai/nginx-agent:latest
echo -e "${GREEN}Setup complete!${NC}"
echo -e "${YELLOW}NOTE: Please log out and log back in for Docker group changes to take effect.${NC}"
EOF
chmod +x moragents-setup.sh
- name: Upload Debian Package and Setup Script
uses: actions/upload-artifact@v4
with:
name: MORagentsSetup-Linux
path: |
moragents.deb
moragents-setup.sh