Run API tests inside Eartlhly

This commit is contained in:
Gabe Kangas 2022-09-04 16:41:02 -07:00
parent 5f118abe83
commit c0dc2eb707
No known key found for this signature in database
GPG key ID: 9A56337728BC81EA
4 changed files with 39 additions and 25 deletions

View file

@ -3,19 +3,30 @@ name: Automated API tests
on:
push:
paths-ignore:
- 'webroot/**'
- 'web/**'
pull_request:
paths-ignore:
- 'web/**'
jobs:
api:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v3
- uses: earthly/actions-setup@v1
with:
stable: 'false'
go-version: '1.17.2'
- name: Run API tests
run: cd test/automated/api && ./run.sh
version: 'latest' # or pin to an specific version, e.g. "v0.6.10"
- name: Earthly version
run: earthly --version
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v2
with:
image: tonistiigi/binfmt:latest
platforms: all
- uses: actions/checkout@v3
- name: Run API tests
run: earthly +api-tests

View file

@ -25,7 +25,7 @@ crosscompiler:
code:
FROM --platform=linux/amd64 +crosscompiler
COPY . /build
# GIT CLONE --branch=$version git@github.com:owncast/owncast.git /build
#GIT CLONE --branch=$version git@github.com:owncast/owncast.git /build
build:
ARG EARTHLY_GIT_HASH # provided by Earthly
@ -127,5 +127,6 @@ api-tests:
FROM --platform=linux/amd64 bdwyertech/go-crosscompile
RUN apk add ffmpeg npm
COPY . /build
WORKDIR /build
RUN cd test/automated/api && ./run.sh
WORKDIR /build/test/automated/api
RUN npm install
RUN ./run.sh

View file

@ -1302,6 +1302,7 @@
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.2.tgz",
"integrity": "sha512-AtnG3W6M8B2n4xDQ5R+70EXvOpnXsFYg/AK2yTZd+HQ/oxAdz+GI+DvjmhBw3L0ole+LJ0ngqY4JMbDzkfNzhA==",
"hasInstallScript": true,
"dependencies": {
"node-gyp-build": "^4.2.0"
}
@ -5679,6 +5680,7 @@
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.3.tgz",
"integrity": "sha512-jtJM6fpGv8C1SoH4PtG22pGto6x+Y8uPprW0tw3//gGFhDDTiuksgradgFN6yRayDP4SyZZa6ZMGHLIa17+M8A==",
"hasInstallScript": true,
"dependencies": {
"node-gyp-build": "^4.2.0"
}

View file

@ -3,26 +3,26 @@
TEMP_DB=$(mktemp)
# Install the node test framework
npm install --silent > /dev/null
npm install #--silent >/dev/null
# Download a specific version of ffmpeg
if [ ! -d "ffmpeg" ]; then
mkdir ffmpeg
pushd ffmpeg > /dev/null
curl -sL https://github.com/vot/ffbinaries-prebuilt/releases/download/v4.2.1/ffmpeg-4.2.1-linux-64.zip --output ffmpeg.zip > /dev/null
unzip -o ffmpeg.zip > /dev/null
PATH=$PATH:$(pwd)
popd > /dev/null
mkdir ffmpeg
pushd ffmpeg >/dev/null
curl -sL https://github.com/vot/ffbinaries-prebuilt/releases/download/v4.2.1/ffmpeg-4.2.1-linux-64.zip --output ffmpeg.zip >/dev/null
unzip -o ffmpeg.zip >/dev/null
PATH=$PATH:$(pwd)
popd >/dev/null
fi
pushd ../../.. > /dev/null
pushd ../../.. >/dev/null
# Build and run owncast from source
go build -race -o owncast main.go
go build -o owncast main.go
./owncast -database $TEMP_DB &
SERVER_PID=$!
popd > /dev/null
popd >/dev/null
sleep 5
# Start streaming the test file over RTMP to
@ -31,8 +31,8 @@ ffmpeg -hide_banner -loglevel panic -stream_loop -1 -re -i ../test.mp4 -vcodec l
FFMPEG_PID=$!
function finish {
rm $TEMP_DB
kill $SERVER_PID $FFMPEG_PID
rm $TEMP_DB
kill $SERVER_PID $FFMPEG_PID
}
trap finish EXIT