Skip to content

2023 12 refresh

2023 12 refresh #64

Workflow file for this run

name: Test Baselayer Template App
on: [push, pull_request]
jobs:
test:
name: Test Template App
runs-on: ubuntu-latest
services:
postgres:
image: postgres
env:
POSTGRES_USER: template_app
POSTGRES_PASSWORD: anything
ports:
- 5432:5432
# needed because the postgres container does not provide a
# healthcheck
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/setup-python@v1
with:
python-version: "3.8"
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: true
- uses: actions/cache@v2
with:
path: |
~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('package.json') }}
- uses: actions/cache@v2
with:
path: |
~/.cache/pip
key: ${{ runner.os }}-${{ hashFiles('**/requirements*.txt') }}
- name: Install system dependencies
run: |
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y wget nodejs unzip firefox nginx
pip install --upgrade pip
pip install wheel
export NPM_PACKAGES="${HOME}/.npm-packages"
export PATH=${NPM_PACKAGES}/bin:$PATH
export NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
sudo npm -g install npm@latest
which python; python --version
echo npm $(npm --version)
echo node $(node --version)
nginx -v
firefox --version
- name: Install Geckodriver / Selenium
run: |
GECKO_VER=0.30.0
CACHED_DOWNLOAD_DIR=~/.local/downloads
FILENAME=geckodriver-v${GECKO_VER}-linux64.tar.gz
if [[ ! -f ${CACHED_DOWNLOAD_DIR=}/${FILENAME} ]]; then
wget https://github.com/mozilla/geckodriver/releases/download/v${GECKO_VER}/${FILENAME} --directory-prefix=${CACHED_DOWNLOAD_DIR} --no-clobber
fi
sudo tar -xzf ${CACHED_DOWNLOAD_DIR}/geckodriver-v${GECKO_VER}-linux64.tar.gz -C /usr/local/bin
geckodriver --version
pip install --upgrade selenium
python -c "import selenium; print(f'Selenium {selenium.__version__}')"
- name: Write configuration & build DB
run: |
cat << EOF > config.yaml
database:
database: template_app
user: template_app
host: localhost
port: 5432
password: anything
EOF
cat << EOF > test_config.yaml
database:
database: template_app_test
user: template_app
host: localhost
port: 5432
password: anything
server:
auth:
debug_login: True
EOF
echo "localhost:5432:*:template_app:anything" > ~/.pgpass
chmod 600 ~/.pgpass
createdb -h localhost -U template_app template_app_test
psql -U template_app -h localhost -c "GRANT ALL PRIVILEGES ON DATABASE template_app_test TO template_app;" template_app_test
make db_init
- name: Test template app
run: |
make test_headless
- name: Lint PR
if: ${{ github.ref != 'refs/heads/main' }}
run: |
pip install pre-commit
pre-commit run --from-ref ${{ github.event.pull_request.base.sha }} --to-ref ${{ github.event.pull_request.head.sha }}
- name: Lint all
if: ${{ github.ref == 'refs/heads/main' }}
run: |
pip install pre-commit
pre-commit run -a
- name: Upload logs
uses: actions/upload-artifact@v2
if: ${{ always() }}
with:
name: logs
path: log