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; }