- Removing old scripts that aren't useful to anyone but myself

+ Adding new bootstrapping script for Docker testing pipeline
This build-database script is what is going to setup things like our tables for us
so that we can actually run our test queries

! Basically turning off the ci right now since its going through some large breaking changes
It's going to be broken for a while so there's no point in running it into
a wall of predictable failures
This commit is contained in:
shockrah 2021-04-29 21:32:43 -07:00
parent 44bfed1351
commit 85660e2fc9
4 changed files with 78 additions and 48 deletions

View File

@ -1,6 +1,7 @@
image: shockrah/freechat:0.4
image: shockrah/freechat-pipeline:latest
stages:
- documentation
- build
- test
@ -11,6 +12,13 @@ workflow:
variables:
CARGO_HOME: $CI_PROJECT_DIR/.cargo
GIT_SUBMODULE_STRATEGY: recursive
# Not doing strict host checking to avoid writing the host fingerprint anywhere
# This is important because I don't host this gitlab instance, if I did host my
# own gitlab however this wouldn't be here as it would be under my control but
# this isn't the case
# Really we're just trading one security issue for another:
# - keeping fingerprints on someone else's server
# - not verifying the host for my little known service
SHOPTS: "-o StrictHostKeyChecking=no"
@ -24,7 +32,7 @@ build-json-api:
only:
refs:
- master
- broken
changes:
- json-api/Cargo.*
@ -38,7 +46,7 @@ build-json-api:
- json-api/build.sh
- json-api/db/Cargo.*
- json-api/db/src/*
- json-api/db/src/*.rs
script:
- cd json-api/
@ -61,7 +69,7 @@ test-json-api:
- build-json-api
only:
refs:
- master
- broken
changes:
- json-api/Cargo.*
@ -116,7 +124,7 @@ build-channer:
build-wiki:
image: shockrah/website:latest
only: [ "master" ]
stage: build
stage: documentation
only:
refs:

65
scripts/build-db.sh Normal file
View File

@ -0,0 +1,65 @@
#!/bin/bash
# Points to the folder that contains all pertinent database tables
# Each table directory contains:
# dir/
# up.sql
# down.sql
# First some parameter checks
if [ ! $1 ];then
echo Failure: Insufficient arguments provided
echo ./build-db.sh /migrations/folder/path
exit 1
fi
if [ ! $2 ];then
echo Failure: Insufficient arguments provided
echo ./build-db.sh /migrations/folder/path /path/to/.env file
exit 1
fi
migration_loc=$1
env_path=$2
source $env_path
# This is kinda dumb but we have to check and make sure the sample default user
# configuration is all there
if [ ! $DATABASE_NAME ];then
echo No DATABASE_NAME set
exit 1
fi
if [ ! $DATABASE_PASS ];then
echo No DATABASE_PASS set
exit 1
fi
if [ ! $DATABASE_USER ];then
echo No DATABASE_USER set
exit 1
fi
if [ ! $DATABASE_HOST ];then
echo No DATABASE_HOST set
exit 1
fi
if [ ! $DATABASE_PORT ];then
echo No DATABASE_PORT set
exit 1
fi
# Next we setup the database user
mysql -e "CREATE USER '$DATABASE_USER'@'$DATABASE_HOST' IDENTIFIED BY '$DATABASE_PASS';"
# Yet another reason to not use this in prod to setup you're database
mysql -e "GRANT ALL PRIVILEGES ON *.* TO '$DATABASE_USER'@'$DATABASE_HOST';"
# First we'll setup the databse that we want to use
for dir in $(ls $migration_loc);do
# Port field is ignored in this script as its straight up not used in Docker tests
echo Migrating $dir
mysql -u $DATABASE_USER -p $DATABASE_PASS \
-h $DATABASE_HOST -D $DATABASE_NAME \
< $dir/up.sql
done

View File

@ -1,34 +0,0 @@
'''
Additions: +
Modifications: *
Removals: -
Note/Warning !
'''
import sys
TMP_MSG_FILE = 'commit-message.tmp'
lines = []
for line in sys.stdin:
line = line.strip()
if line.startswith('+'):
line = '' + line[1:]
elif line.startswith('-'):
line = '' + line[1:]
elif line.startswith('*'):
line = '' + line[1:]
elif line.startswith('!'):
line = '' + line[1:]
lines.append(line)
with open(TMP_MSG_FILE, 'w') as target:
for line in lines:
print(line, file=target)

View File

@ -1,9 +0,0 @@
#!/bin/bash
# This script assumes that everything has been built already
export DATABASE_URL=mysql://freechat_dev:password@localhost:3306/freechat
json-api/target/release/json-api -s &
pushd rtc-server
npm start
popd
kill $(pgrep json-api)