Add GH workflow for Mac ARM, Intel, and Linux build #16
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |