Fix order of most used sorting of branches (#219) #1091
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: CI | |
on: [push, pull_request] | |
env: | |
RDB_DB: postgres | |
RDB_USER: postgres | |
RDB_PASS: postgres | |
DEBUG: true | |
DB_HOST: localhost | |
DB_PORT: 5432 # defined below in the services.postgres.ports (the first one) | |
LANG: en_US.UTF-8 | |
LANGUAGE: en_US.UTF-8 | |
LC_ALL: en_US.UTF-8 | |
jobs: | |
build-and-test: | |
runs-on: ubuntu-latest | |
services: | |
# Label used to access the service container | |
postgres: | |
# Docker Hub image | |
image: postgres | |
env: | |
POSTGRES_PASSWORD: ${{ env.RDB_PASS }} | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
-v ${{ github.workspace }}:/postgres-export:rw | |
ports: | |
# Maps tcp port 5432 on service container to the host | |
- 5432:5432 | |
steps: | |
- name: Checkout ReBench | |
uses: actions/checkout@v4 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '21' | |
- name: Cache node modules | |
uses: actions/cache@v4 | |
env: | |
cache-name: node-modules | |
with: | |
# npm cache files are stored in `~/.npm` on Linux/macOS | |
path: ~/.npm | |
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('package.json', 'package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-${{ env.cache-name }}- | |
${{ runner.os }}- | |
- name: NPM CI | |
run: | | |
npm ci | |
- name: Run Tests | |
run: | | |
npm test | |
echo "## Test Coverage Summary" >> $GITHUB_STEP_SUMMARY | |
echo "\`\`\`\n" >> $GITHUB_STEP_SUMMARY | |
cat coverage/coverage-summary.txt | grep -v "===" | tail -n4 >> $GITHUB_STEP_SUMMARY | |
- name: Upload image difference, if there are any | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Image Differences of charts.test.ts | |
path: | | |
diff-*.png | |
*.svg | |
if-no-files-found: ignore | |
- name: Lint and Formatting | |
run: | | |
npm run verify | |
- name: Install ReBench | |
run: | | |
git clone --depth 1 https://github.com/smarr/rebench.git | |
pushd rebench | |
pip install . | |
popd | |
- name: Run ReBench Integration Tests | |
run: | | |
# make workspace writable for postgres container | |
chmod a+wx ${{ github.workspace }} | |
# start ReBenchDB server | |
NODE_DATA_EXPORT_PATH=${{ github.workspace }} RDB_DATA_EXPORT_PATH=/postgres-export DATA_URL_BASE=/static DEV=true npm run start & | |
sleep 5 | |
# run integration tests | |
pushd tests/rebench-integration | |
rebench --experiment IntegrationTest rebench.conf | |
sleep 1 | |
PROJID=$(curl -s http://localhost:33333/ReBenchDB-integration-test/data | grep project-id | grep -o -E '[0-9]+') | |
EXPID=$(curl -s http://localhost:33333/rebenchdb/dash/$PROJID/data-overview | jq '.data[0].expid') | |
# Trigger data generation | |
curl -s http://localhost:33333/ReBenchDB-integration-test/data/$EXPID.json.gz > /dev/null | |
curl -s http://localhost:33333/ReBenchDB-integration-test/data/$EXPID.csv.gz > /dev/null | |
sleep 10 # give the server some time to generate the files | |
# reposses the files to be able to read them | |
sudo chown $(whoami):$(id -g -n) ${{ github.workspace }}/*.gz | |
# fetch the generated files via node and check them | |
curl -sL http://localhost:33333/ReBenchDB-integration-test/data/$EXPID.json.gz -o actual.json.gz | |
curl -sL http://localhost:33333/ReBenchDB-integration-test/data/$EXPID.csv.gz -o actual.csv.gz | |
gzip -k -d actual.json.gz | |
gzip -k -d actual.csv.gz | |
node check-data.js |