-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
449 additions
and
38 deletions.
There are no files selected for viewing
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
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 |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
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: Install Arches applications | ||
uses: ./.github/actions/install-arches-applications | ||
with: | ||
secrets: ${{ inputs.secrets }} | ||
|
||
- name: Checkout into feature branch | ||
if: inputs.branch-type == 'feature' | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: ${{ github.repository }} | ||
ref: ${{ github.ref }} | ||
path: . | ||
|
||
- name: Checkout into target branch | ||
if: inputs.branch-type == 'target' | ||
uses: actions/checkout@v4 | ||
with: | ||
repository: ${{ github.repository }} | ||
ref: ${{ github.event.pull_request.base.ref }} | ||
path: . | ||
|
||
- 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 | ||
run: | | ||
! git ls-files --eol | 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 |
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
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 |
Oops, something went wrong.