setup test action (#16)
* setup test action * lint both solutions and exercises * rename action * rename
This commit is contained in:
22
.github/workflows/test.yml
vendored
22
.github/workflows/test.yml
vendored
@@ -13,7 +13,7 @@
|
||||
# Requires scripts:
|
||||
# - bin/test
|
||||
|
||||
name: <track> / Test
|
||||
name: test
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -23,17 +23,17 @@ on:
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
runs-on: <image-name>
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Use <setup tooling>
|
||||
uses: <action to setup tooling>
|
||||
|
||||
- name: Install project dependencies
|
||||
run: <install dependencies>
|
||||
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579
|
||||
- name: Use Node.js LTS (16.x)
|
||||
uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c
|
||||
with:
|
||||
node-version: '16'
|
||||
- run: npm install @abaplint/cli -g
|
||||
- run: abaplint abaplint_exercises.json
|
||||
- run: abaplint abaplint_solutions.json
|
||||
- name: Run tests for all exercises
|
||||
run: bin/test
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
"severity": "Error",
|
||||
"count": 1
|
||||
},
|
||||
"line_break_style": true,
|
||||
"line_break_style": false,
|
||||
"line_length": {
|
||||
"exclude": [],
|
||||
"severity": "Error",
|
||||
566
abaplint_solutions.json
Normal file
566
abaplint_solutions.json
Normal 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
|
||||
}
|
||||
}
|
||||
@@ -9,4 +9,4 @@ CLASS zcl_hello_world IMPLEMENTATION.
|
||||
out->write( 'Hello, World!' ).
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
ENDCLASS.
|
||||
Reference in New Issue
Block a user