40 lines
1.5 KiB
YAML
40 lines
1.5 KiB
YAML
name: TOML validation
|
|
|
|
on: pull_request
|
|
|
|
jobs:
|
|
build:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Set up Python 3.11
|
|
uses: actions/setup-python@v4
|
|
with:
|
|
python-version: 3.11
|
|
- name: Install toml python lib
|
|
run: |
|
|
pip3 install toml
|
|
- name: Check TOML validity for apps.toml
|
|
run: |
|
|
python3 -c "import toml; toml.load(open('apps.toml'))"
|
|
|
|
- name: Check all working apps have consistent app id / app url
|
|
run: |
|
|
FAULTY_APPS="false";
|
|
for LINE in $(python3 -c "import toml; print('\n'.join(app for app, infos in toml.load(open('apps.toml')).items() if infos.get('state') == 'working'))")
|
|
do
|
|
APP=$(echo $LINE | awk -F'|' '{print $1}')
|
|
URL_END=$(echo $LINE | awk -F'/' '{print $NF}')
|
|
[ "$APP" == "$(echo $APP | tr [A-Z] [a-z])" ] || { FAULTY_APPS="true"; echo "$APP : app id should be lowercase" >&2; }
|
|
[ "$URL_END" == "${APP}_ynh" ] || { FAULTY_APPS="true"; echo "$APP : the url should end with ${APP}_ynh" >&2; }
|
|
done
|
|
[ $FAULTY_APPS = "false" ]
|
|
|
|
- name: Check all working apps have a category
|
|
run: |
|
|
APPS_WITH_NO_CATEGORY=$(python3 -c "import toml; print('\n'.join(app for app, infos in toml.load(open('apps.toml')).items() if infos.get('state') == 'working' and not infos.get('category')))")
|
|
[ "$APPS_WITH_NO_CATEGORY" == "" ] || { echo "Some working apps are missing a category: $APPS_WITH_NO_CATEGORY" >&2; false; }
|
|
|