-
Notifications
You must be signed in to change notification settings - Fork 18
140 lines (118 loc) · 4.42 KB
/
mor-agents-build-linux.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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
}
# Function to add current user to docker group
add_user_to_docker_group() {
local current_user=\$(whoami)
if [ "\$current_user" != "root" ]; then
echo -e "\${YELLOW}Adding current user to docker group...${NC}"
sudo usermod -aG docker "\$current_user"
echo -e "\${GREEN}User added to docker group. Please log out and log back in for changes to take effect.${NC}"
else
echo -e "\${YELLOW}Running as root. Skipping user addition to docker group.${NC}"
fi
}
# 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
add_user_to_docker_group
sudo systemctl enable docker
sudo systemctl start docker
else
echo -e "${GREEN}Docker is already installed.${NC}"
fi
# Install Ollama
echo -e "${YELLOW}Installing Ollama...${NC}"
curl -fsSL https://ollama.com/install.sh | sh
# Start Ollama service
echo -e "${YELLOW}Starting Ollama service...${NC}"
nohup ollama serve > /dev/null 2>&1 &
# Pull Ollama models
echo -e "${YELLOW}Pulling Ollama models...${NC}"
ollama pull llama3
ollama pull nomic-embed-text
# Pull necessary Docker images
echo -e "${YELLOW}Pulling Docker images...${NC}"
sudo docker pull lachsbagel/moragents_dockers-nginx:amd64-0.0.9
sudo docker pull lachsbagel/moragents_dockers-agents:amd64-0.0.9
# 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 lachsbagel/moragents_dockers-agents:amd64-0.0.9
sudo docker run -d --name nginx -p 3333:80 lachsbagel/moragents_dockers-nginx:amd64-0.0.9
echo -e "${GREEN}Setup complete!${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