add github actions ci

This commit is contained in:
Robin Appelman 2020-11-28 00:00:38 +01:00
commit 59c9efe395
4 changed files with 73 additions and 39 deletions

66
.github/workflows/rust.yml vendored Normal file
View file

@ -0,0 +1,66 @@
on: [push, pull_request]
name: CI
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
with:
command: check
test:
runs-on: ubuntu-latest
name: Tests
services:
api-test-db:
image: demostf/db
env:
POSTGRES_PASSWORD: test
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
ports:
- 5432:5432
api:
image: demostf/api
env:
DEMO_ROOT: /tmp
DEMO_HOST: localhost
DB_TYPE: pgsql
DB_HOST: api-test-db
DB_PORT: 5432
DB_DATABASE: postgres
DB_USERNAME: postgres
DB_PASSWORD: test
APP_ROOT: https://api.localhost
EDIT_SECRET: edit
api-test:
image: demostf/api-nginx-test
env:
POSTGRES_PASSWORD: test
ports:
- 80:80
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- uses: actions-rs/cargo@v1
env:
DB_URL: postgres://postgres:test@localhost/postgres
API_ROOT: http://localhost/
with:
command: test
args: -- --test-threads 1
- name: logs
uses: jwalton/gh-docker-logs@v1
if: failure()

View file

@ -1,31 +0,0 @@
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
client_max_body_size 200m;
if ($request_method = POST ) {
rewrite /upload /do_upload last;
break;
}
location /do_upload {
fastcgi_pass api:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /app/src/public/upload.php;
}
index index.php;
try_files $uri /index.php?$query_string /index.php;
location ~ ^(.+?\.php)(/.*)?$ {
fastcgi_param PATH_INFO $2;
fastcgi_pass api:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /app/src/public/index.php;
include fastcgi_params;
}
}

View file

@ -13,5 +13,4 @@ docker run -d --name api-test-fpm --link api-test-db:db -v /tmp/api-test-data:/d
-e DB_HOST=db -e DB_PORT=5432 -e DB_DATABASE=postgres -e DB_USERNAME=postgres \ -e DB_HOST=db -e DB_PORT=5432 -e DB_DATABASE=postgres -e DB_USERNAME=postgres \
-e DB_PASSWORD=test -e APP_ROOT=http://api.localhost -e EDIT_SECRET=edit \ -e DB_PASSWORD=test -e APP_ROOT=http://api.localhost -e EDIT_SECRET=edit \
demostf/api demostf/api
docker run -d --name api-test --link api-test-fpm:api\ docker run -d --name api-test --link api-test-fpm:api -p 8888:80 demostf/api-nginx-test
-v $(pwd)/nginx_test.conf:/etc/nginx/conf.d/api.conf:ro -p 8888:80 nginx

View file

@ -146,12 +146,12 @@ async fn test_get_demo() {
SteamID::from(76561198024494988) SteamID::from(76561198024494988)
); );
let players = &demo.players; let mut players = demo.players;
dbg!(players); players.sort_by(|a, b| a.player_id.cmp(&b.player_id));
assert_eq!(demo.players[0].player_id, 1); assert_eq!(players[0].player_id, 1);
assert_eq!(demo.players[0].user.id, 2); assert_eq!(players[0].user.id, 2);
assert_eq!(demo.players[0].user.name, "distraughtduck4"); assert_eq!(players[0].user.name, "distraughtduck4");
} }
#[tokio::test] #[tokio::test]
@ -186,7 +186,7 @@ async fn test_set_url_invalid_key() {
let res = client let res = client
.set_url( .set_url(
9, 1,
"tests", "tests",
"tests", "tests",
"http://example.com/tests", "http://example.com/tests",