Skip to content

Commit

Permalink
make_arches: create base for arches76
Browse files Browse the repository at this point in the history
  • Loading branch information
philtweir committed Oct 5, 2024
0 parents commit 93d4314
Show file tree
Hide file tree
Showing 74 changed files with 23,218 additions and 0 deletions.
7 changes: 7 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"presets": [
[
"@babel/preset-env"
]
]
}
10 changes: 10 additions & 0 deletions .browserslistrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[production staging]
>5%
last 2 versions
Firefox ESR
not ie < 11

[development]
last 1 chrome version
last 1 firefox version
last 1 edge version
30 changes: 30 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
[run]
source =
arches76/

omit =
*/python?.?/*
*/migrations/*
*/settings*.py
*/urls.py
*/wsgi.py
*/hosts.py
*/celery.py
*/__init__.py

data_file = coverage/python/.coverage

[report]
show_missing = true

exclude_lines =
pragma: no cover

[html]
directory = coverage/python/htmlcov

[xml]
output = coverage/python/coverage.xml

[json]
output = coverage/python/coverage.json
11 changes: 11 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Set the default behavior, in case people don't have core.autocrlf set.
* text=auto

# Known binary formats
*.png binary
*.jpg binary
*.ico binary
*.gif binary
*.ttf binary
*.woff binary
*.woff2 binary
109 changes: 109 additions & 0 deletions .github/actions/build-and-test-branch/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
name: 'Build and test branch'
description: 'Builds and tests a branch'
inputs:
branch-type:
description: 'String denoting either `target` or `feature` branch'
required: true
project-name:
description: 'String denoting the name of the project'
required: true
secrets:
description: 'Secrets from main.yml as JSON'
runs:
using: 'composite'
steps:
- name: Install Java, GDAL, and other system dependencies
run: |
sudo apt update
sudo apt-get install libxml2-dev libpq-dev openjdk-8-jdk libgdal-dev libxslt-dev
echo Postgres and ES dependencies installed
shell: bash

- name: Set up Elasticsearch
uses: ankane/setup-elasticsearch@v1
with:
elasticsearch-version: 8

- name: Install Python packages
run: |
python -m pip install --upgrade pip
pip install '.[dev]'
echo Python packages installed
shell: bash

- name: Ensure frontend configuration files exist
run: |
python manage.py check
shell: bash

- name: Install Arches applications
uses: ./.github/actions/install-arches-applications
with:
secrets: ${{ inputs.secrets }}

- name: Install frontend dependencies
run: |
npm install
shell: bash

- name: Webpack frontend files
run: |
npm run build_test
shell: bash

- name: Check frontend formatting with prettier
run: |
npm run prettier:check
shell: bash

- name: Check backend formatting with black
run: |
black . --check --exclude=node_modules
shell: bash

- name: Check line endings on all but ontology (.xml) files
run: |
! git ls-files --eol | grep -v '.xml' | grep 'w/crlf\|w/mixed'
shell: bash

- name: Run frontend tests
run: |
npm run vitest
mv coverage/frontend/coverage.xml ${{ inputs.branch-type }}_branch_frontend_coverage.xml
shell: bash

- name: Check for missing migrations
run: |
python manage.py makemigrations --check
shell: bash

- name: Ensure previous Python coverage data is erased
run: |
coverage erase
shell: bash

- name: Run Python unit tests
run: |
python -W default::DeprecationWarning -m coverage run manage.py test tests --settings="tests.test_settings"
shell: bash

- name: Generate Python report coverage
run: |
coverage report
coverage json
mv coverage/python/coverage.json ${{ inputs.branch-type }}_branch_python_coverage.json
shell: bash

- name: Upload frontend coverage report as artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.branch-type }}-branch-frontend-coverage-report
path: ${{ inputs.branch-type }}_branch_frontend_coverage.xml
overwrite: true

- name: Upload Python coverage report as artifact
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.branch-type }}-branch-python-coverage-report
path: ${{ inputs.branch-type }}_branch_python_coverage.json
overwrite: true
29 changes: 29 additions & 0 deletions .github/actions/install-arches-applications/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: 'Install Arches Applications'
description: 'Manually edit this file to install all Arches Applications declared in settings.py, but not declared in `pyproject.toml`'
inputs:
secrets:
description: 'Secrets from main.yml as JSON'
runs:
using: 'composite'
steps:

# Manually add any ARCHES_APPLICATIONS to this file if not already declared in `pyproject.toml`.
# Below is a template for adding an application in a private repository.
# Be sure to delete the `no-op step` if adding when updating this file.

- name: No-op step to maintain workflow structure
run: echo "No-op step"
shell: bash

# - name: Checkout ${my_arches_application_name}
# uses: actions/checkout@v4
# with:
# repository: ${my_arches_application_repository}/${my_arches_application_name}
# token: ${{ fromJSON(inputs.secrets).${my_github_personal_access_token} }}
# path: ${my_arches_application_name}

# - name: Install ${my_arches_application_name}
# run: |
# pip install ./${my_arches_application_name}
# echo ${my_arches_application_name} installed
# shell: bash
Loading

0 comments on commit 93d4314

Please sign in to comment.