Validate Node and Docker Builds #53
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: Builds | |
run-name: Validate Node and Docker Builds | |
on: | |
push: | |
branches: | |
- master # runs after Pull Request is merged | |
jobs: | |
Discord-Node-Build: # test if the node install and run | |
runs-on: ubuntu-latest | |
timeout-minutes: 2 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up Node Environment lts/jod | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/jod | |
cache: "npm" | |
- name: Install Project Dependencies | |
run: | | |
npm install | |
- name: Build Application | |
run: | | |
npm run build | |
- name: Create Environment Variables | |
run: | | |
touch .env | |
echo CLIENT_TOKEN = ${{ secrets.BOT_TOKEN }} >> .env | |
echo OLLAMA_IP = ${{ secrets.OLLAMA_IP }} >> .env | |
echo OLLAMA_PORT = ${{ secrets.OLLAMA_PORT }} >> .env | |
echo REDIS_IP = ${{ secrets.REDIS_IP }} >> .env | |
echo REDIS_PORT = ${{ secrets.REDIS_PORT }} >> .env | |
# set -e ensures if nohup fails, this section fails | |
- name: Startup Discord Bot Client | |
run: | | |
set -e | |
nohup npm run prod & | |
Discord-Ollama-Container-Build: # test docker build and run | |
runs-on: ubuntu-latest | |
timeout-minutes: 2 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Set up Node Environment lts/jod | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/jod | |
cache: "npm" | |
- name: Create Environment Variables | |
run: | | |
touch .env | |
echo CLIENT_TOKEN = ${{ secrets.BOT_TOKEN }} >> .env | |
echo OLLAMA_IP = ${{ secrets.OLLAMA_IP }} >> .env | |
echo OLLAMA_PORT = ${{ secrets.OLLAMA_PORT }} >> .env | |
echo REDIS_IP = ${{ secrets.REDIS_IP }} >> .env | |
echo REDIS_PORT = ${{ secrets.REDIS_PORT }} >> .env | |
- name: Setup Docker Network and Images | |
run: | | |
npm run docker:start-cpu | |
- name: Check Images Exist | |
run: | | |
(docker images | grep -q 'kevinthedang/discord-ollama' && docker images | grep -qE 'ollama/ollama' | docker images | grep -qE 'redis') || exit 1 | |
- name: Check Containers Exist | |
run: | | |
(docker ps | grep -q 'ollama' && docker ps | grep -q 'discord' && docker ps | grep -q 'redis') || exit 1 |