setup test action (#16)

* setup test action

* lint both solutions and exercises

* rename action

* rename
This commit is contained in:
Lars Hvam
2021-11-26 08:46:40 +01:00
committed by GitHub
parent b26cbe86ab
commit 0011764f80
4 changed files with 579 additions and 13 deletions

View File

@@ -13,7 +13,7 @@
# Requires scripts: # Requires scripts:
# - bin/test # - bin/test
name: <track> / Test name: test
on: on:
push: push:
@@ -23,17 +23,17 @@ on:
jobs: jobs:
ci: ci:
runs-on: <image-name> runs-on: ubuntu-latest
steps: steps:
- name: Checkout repository - name: Checkout code
uses: actions/checkout@v2 uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
- name: Use Node.js LTS (16.x)
- name: Use <setup tooling> uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c
uses: <action to setup tooling> with:
node-version: '16'
- name: Install project dependencies - run: npm install @abaplint/cli -g
run: <install dependencies> - run: abaplint abaplint_exercises.json
- run: abaplint abaplint_solutions.json
- name: Run tests for all exercises - name: Run tests for all exercises
run: bin/test run: bin/test

View File

@@ -320,7 +320,7 @@
"severity": "Error", "severity": "Error",
"count": 1 "count": 1
}, },
"line_break_style": true, "line_break_style": false,
"line_length": { "line_length": {
"exclude": [], "exclude": [],
"severity": "Error", "severity": "Error",

566
abaplint_solutions.json Normal file
View File

@@ -0,0 +1,566 @@
{
"global": {
"files": "{/exercises/practice/**/*.testclasses.abap,/exercises/practice/**/.meta/*.abap}",
"exclude": [],
"skipGeneratedGatewayClasses": true,
"skipGeneratedPersistentClasses": true,
"skipGeneratedFunctionGroups": true,
"useApackDependencies": false,
"skipIncludesWithoutMain": false
},
"dependencies": [
{
"url": "https://github.com/open-abap/open-abap",
"folder": "/deps",
"files": "/src/**/*.*"
}
],
"syntax": {
"version": "v755",
"errorNamespace": ".",
"globalConstants": [],
"globalMacros": []
},
"rules": {
"7bit_ascii": true,
"abapdoc": false,
"allowed_object_naming": true,
"allowed_object_types": {
"exclude": [],
"severity": "Error",
"allowed": []
},
"ambiguous_statement": true,
"avoid_use": {
"exclude": [],
"severity": "Error",
"define": true,
"statics": true,
"defaultKey": true,
"break": true,
"describeLines": true
},
"begin_end_names": true,
"begin_single_include": true,
"call_transaction_authority_check": true,
"chain_mainly_declarations": {
"exclude": [],
"severity": "Error",
"definitions": true,
"write": true,
"move": true,
"refresh": true,
"unassign": true,
"clear": true,
"hide": true,
"free": true,
"include": true,
"check": true,
"sort": true
},
"check_abstract": true,
"check_comments": {
"exclude": [],
"severity": "Error",
"allowEndOfLine": false
},
"check_ddic": true,
"check_include": true,
"check_no_handler_pragma": true,
"check_subrc": {
"exclude": [],
"severity": "Error",
"openDataset": true,
"authorityCheck": true,
"selectSingle": true,
"selectTable": true,
"updateDatabase": true,
"insertDatabase": true,
"modifyDatabase": true,
"readTable": true,
"assign": true,
"find": true
},
"check_syntax": true,
"check_text_elements": true,
"check_transformation_exists": true,
"class_attribute_names": {
"exclude": [],
"severity": "Error",
"patternKind": "required",
"ignoreNames": [],
"ignorePatterns": [],
"ignoreExceptions": true,
"ignoreLocal": true,
"ignoreInterfaces": false,
"statics": "^G._.+$",
"instance": "^M._.+$",
"constants": ""
},
"cloud_types": true,
"colon_missing_space": true,
"commented_code": {
"exclude": [],
"severity": "Error",
"allowIncludeInFugr": true
},
"constant_classes": {
"exclude": [],
"severity": "Error",
"mapping": []
},
"constructor_visibility_public": true,
"contains_tab": {
"exclude": [],
"severity": "Error",
"spaces": 1
},
"cyclic_oo": {
"exclude": [],
"severity": "Error",
"skip": []
},
"cyclomatic_complexity": {
"exclude": [],
"severity": "Error",
"max": 20
},
"dangerous_statement": {
"exclude": [],
"severity": "Error",
"execSQL": true,
"kernelCall": true,
"systemCall": true,
"insertReport": true,
"generateDynpro": true,
"generateReport": true,
"generateSubroutine": true,
"deleteReport": true,
"deleteTextpool": true,
"deleteDynpro": true,
"importDynpro": true
},
"db_operation_in_loop": true,
"definitions_top": true,
"description_empty": false,
"double_space": true,
"downport": true,
"empty_line_in_statement": {
"exclude": [],
"severity": "Error",
"allowChained": false
},
"empty_statement": true,
"empty_structure": true,
"exit_or_check": true,
"exporting": true,
"forbidden_identifier": {
"exclude": [],
"severity": "Error",
"check": []
},
"forbidden_pseudo_and_pragma": {
"exclude": [],
"severity": "Error",
"pseudo": [],
"pragmas": [],
"ignoreGlobalClassDefinition": false,
"ignoreGlobalInterface": false
},
"forbidden_void_type": {
"exclude": [],
"severity": "Error",
"check": []
},
"form_tables_obsolete": true,
"fully_type_constants": {
"exclude": [],
"severity": "Error",
"checkData": true
},
"function_module_recommendations": {
"exclude": [],
"severity": "Error",
"recommendations": [
{
"name": "SUBST_GET_FILE_LIST",
"replace": "see note 1686357"
},
{
"name": "ROUND",
"replace": "use built in function: round()"
},
{
"name": "SO_NEW_DOCUMENT_ATT_SEND_API1",
"replace": "use CL_BCS"
},
{
"name": "ECATT_CONV_XSTRING_TO_STRING",
"replace": "use CL_BINARY_CONVERT"
},
{
"name": "SCMS_STRING_TO_XSTRING",
"replace": "use CL_BINARY_CONVERT"
},
{
"name": "JOB_CREATE",
"replace": "use CL_BP_ABAP_JOB"
},
{
"name": "JOB_SUBMIT",
"replace": "use CL_BP_ABAP_JOB"
},
{
"name": "GUI_DOWNLOAD",
"replace": "use CL_GUI_FRONTEND_SERVICES"
},
{
"name": "GUI_UPLOAD",
"replace": "use CL_GUI_FRONTEND_SERVICES"
},
{
"name": "WS_FILENAME_GET",
"replace": "use CL_GUI_FRONTEND_SERVICES"
},
{
"name": "F4_FILENAME",
"replace": "use CL_GUI_FRONTEND_SERVICES"
},
{
"name": "SAPGUI_PROGRESS_INDICATOR",
"replace": "use CL_PROGRESS_INDICATOR"
},
{
"name": "GUID_CREATE",
"replace": "use CL_SYSTEM_UUID"
},
{
"name": "SSFC_BASE64_DECODE",
"replace": "use class CL_HTTP_UTILITY methods"
},
{
"name": "SSFC_BASE64_ENCODE",
"replace": "use class CL_HTTP_UTILITY methods"
},
{
"name": "SCMS_BASE64_DECODE_STR",
"replace": "use class CL_HTTP_UTILITY methods"
},
{
"name": "POPUP_TO_DECIDE",
"replace": "use POPUP_TO_CONFIRM"
},
{
"name": "REUSE_ALV_GRID_DISPLAY",
"replace": "use CL_SALV_TABLE=>FACTORY or CL_GUI_ALV_GRID"
},
{
"name": "CALCULATE_HASH_FOR_RAW",
"replace": "use CL_ABAP_HMAC"
},
{
"name": "FUNCTION_EXISTS",
"replace": "surround with try-catch CX_SY_DYN_CALL_ILLEGAL_METHOD instead"
}
]
},
"functional_writing": {
"exclude": [],
"severity": "Error",
"ignoreExceptions": true
},
"global_class": true,
"identical_conditions": true,
"identical_contents": true,
"identical_descriptions": true,
"identical_form_names": true,
"if_in_if": true,
"implement_methods": true,
"in_statement_indentation": {
"exclude": [],
"severity": "Error",
"blockStatements": 2,
"ignoreExceptions": true
},
"indentation": {
"exclude": [],
"severity": "Error",
"ignoreExceptions": true,
"alignTryCatch": false,
"selectionScreenBlockIndentation": false,
"globalClassSkipFirst": false,
"ignoreGlobalClassDefinition": false,
"ignoreGlobalInterface": false
},
"inline_data_old_versions": true,
"intf_referencing_clas": {
"exclude": [],
"severity": "Error",
"allow": []
},
"keep_single_parameter_on_one_line": {
"exclude": [],
"severity": "Error",
"length": 120
},
"keyword_case": {
"exclude": [],
"severity": "Error",
"style": "upper",
"ignoreExceptions": true,
"ignoreLowerClassImplmentationStatement": true,
"ignoreGlobalClassDefinition": false,
"ignoreGlobalInterface": false,
"ignoreFunctionModuleName": false,
"ignoreGlobalClassBoundaries": false,
"ignoreKeywords": []
},
"line_break_multiple_parameters": {
"exclude": [],
"severity": "Error",
"count": 1
},
"line_break_style": false,
"line_length": {
"exclude": [],
"severity": "Error",
"length": 120
},
"line_only_punc": {
"exclude": [],
"severity": "Error",
"ignoreExceptions": true
},
"local_class_naming": {
"exclude": [],
"severity": "Error",
"patternKind": "required",
"ignoreNames": [],
"ignorePatterns": [],
"local": "^LCL_.+$",
"exception": "^LCX_.+$",
"test": "^LTCL_.+$"
},
"local_testclass_location": true,
"local_variable_names": false,
"main_file_contents": true,
"many_parentheses": true,
"max_one_method_parameter_per_line": true,
"max_one_statement": true,
"message_exists": true,
"method_implemented_twice": true,
"method_length": {
"exclude": [],
"severity": "Error",
"statements": 100,
"errorWhenEmpty": true,
"ignoreTestClasses": false,
"checkForms": true
},
"method_overwrites_builtin": true,
"method_parameter_names": {
"exclude": [],
"severity": "Error",
"patternKind": "required",
"ignoreNames": [],
"ignorePatterns": [],
"ignoreExceptions": true,
"importing": "^I._.+$",
"returning": "^R._.+$",
"changing": "^C._.+$",
"exporting": "^E._.+$"
},
"mix_returning": true,
"modify_only_own_db_tables": {
"exclude": [],
"severity": "Error",
"reportDynamic": true,
"ownTables": "^[yz]"
},
"msag_consistency": true,
"names_no_dash": true,
"nesting": {
"exclude": [],
"severity": "Error",
"depth": 5
},
"newline_between_methods": {
"exclude": [],
"severity": "Error",
"count": 3,
"logic": "less"
},
"no_public_attributes": {
"exclude": [],
"severity": "Error",
"allowReadOnly": false
},
"no_yoda_conditions": {
"exclude": [],
"severity": "Error",
"onlyConstants": false
},
"object_naming": {
"exclude": [],
"severity": "Error",
"patternKind": "required",
"ignoreNames": [],
"ignorePatterns": [],
"clas": "^ZC(L|X)",
"intf": "^ZIF",
"prog": "^Z",
"fugr": "^Z",
"tabl": "^Z",
"ttyp": "^Z",
"dtel": "^Z",
"doma": "^Z",
"msag": "^Z",
"tran": "^Z",
"enqu": "^EZ",
"auth": "^Z",
"pinf": "^Z",
"idoc": "^Z",
"xslt": "^Z",
"ssfo": "^Z",
"ssst": "^Z",
"shlp": "^Z"
},
"obsolete_statement": {
"exclude": [],
"severity": "Error",
"refresh": true,
"compute": true,
"add": true,
"subtract": true,
"multiply": true,
"divide": true,
"move": true,
"requested": true,
"occurs": true,
"setExtended": true,
"withHeaderLine": true,
"fieldSymbolStructure": true,
"typePools": true,
"load": true,
"parameter": true,
"ranges": true,
"communication": true,
"pack": true,
"selectWithoutInto": true,
"freeMemory": true,
"exitFromSQL": true,
"sortByFS": true,
"callTransformation": true,
"regex": true
},
"omit_parameter_name": true,
"omit_receiving": true,
"parser_702_chaining": true,
"parser_error": true,
"parser_missing_space": true,
"pragma_placement": true,
"prefer_inline": true,
"prefer_is_not": true,
"prefer_raise_exception_new": true,
"prefer_returning_to_exporting": true,
"prefer_xsdbool": true,
"preferred_compare_operator": {
"exclude": [],
"severity": "Error",
"badOperators": [
"EQ",
"><",
"NE",
"GE",
"GT",
"LT",
"LE"
]
},
"prefix_is_current_class": {
"exclude": [],
"severity": "Error",
"omitMeInstanceCalls": true
},
"reduce_string_templates": true,
"release_idoc": true,
"remove_descriptions": {
"exclude": [],
"severity": "Error",
"ignoreExceptions": false,
"ignoreWorkflow": true
},
"rfc_error_handling": true,
"select_add_order_by": true,
"select_performance": {
"exclude": [],
"severity": "Error",
"endSelect": true,
"selectStar": true,
"starOkayIfFewColumns": 10
},
"selection_screen_naming": {
"exclude": [],
"severity": "Error",
"patternKind": "required",
"ignoreNames": [],
"ignorePatterns": [],
"parameter": "^P_.+$",
"selectOption": "^S_.+$"
},
"sequential_blank": {
"exclude": [],
"severity": "Error",
"lines": 4
},
"short_case": {
"exclude": [],
"severity": "Error",
"length": 1,
"allow": []
},
"sicf_consistency": true,
"space_before_colon": true,
"space_before_dot": {
"exclude": [],
"severity": "Error",
"ignoreGlobalDefinition": true,
"ignoreExceptions": true
},
"sql_escape_host_variables": true,
"start_at_tab": true,
"superclass_final": true,
"sy_modification": true,
"tabl_enhancement_category": true,
"try_without_catch": true,
"type_form_parameters": true,
"types_naming": {
"exclude": [],
"severity": "Error",
"pattern": "^TY_.+$"
},
"uncaught_exception": true,
"unknown_types": true,
"unreachable_code": true,
"unsecure_fae": true,
"unused_ddic": true,
"unused_methods": true,
"unused_types": {
"exclude": [],
"severity": "Error",
"skipNames": []
},
"unused_variables": {
"exclude": [],
"severity": "Error",
"skipNames": []
},
"use_bool_expression": true,
"use_class_based_exceptions": true,
"use_line_exists": true,
"use_new": true,
"when_others_last": true,
"whitespace_end": true,
"xml_consistency": true
}
}

View File

@@ -9,4 +9,4 @@ CLASS zcl_hello_world IMPLEMENTATION.
out->write( 'Hello, World!' ). out->write( 'Hello, World!' ).
ENDMETHOD. ENDMETHOD.
ENDCLASS. ENDCLASS.