1
+ name : tests
2
+
3
+ on :
4
+ push :
5
+ pull_request :
6
+ types : [opened, reopened, review_requested, synchronize]
7
+ workflow_dispatch :
8
+
9
+ env :
10
+ COBOL4J_LIB_DIR : /usr/lib/opensourcecobol4j
11
+ COBOL4J_SQLITE_JDBC_PATH : /usr/lib/opensourcecobol4j/sqlite.jar
12
+ COBOL4J_LIBCOBJ_JAR_PATH : /usr/lib/opensourcecobol4j/libcobj.jar
13
+ OCESQL4J_LIB_DIR : /usr/lib/Open-COBOL-ESQL-4j
14
+ OCESQL4J_POSTGRESQL_JDBC_PATH : /usr/lib/Open-COBOL-ESQL-4j/postgresql.jar
15
+ OCESQL4J_OCESQL4J_JAR_PATH : /usr/lib/Open-COBOL-ESQL-4j/ocesql4j.jar
16
+ CLASSPATH : " :/usr/lib/opensourcecobol4j/sqlite.jar:/usr/lib/opensourcecobol4j/libcobj.jar:/usr/lib/Open-COBOL-ESQL-4j/postgresql.jar:/usr/lib/Open-COBOL-ESQL-4j/ocesql4j.jar"
17
+
18
+ jobs :
19
+ make-coverage-report :
20
+ runs-on : ubuntu-latest
21
+
22
+ # Start PostgreSQL 15 server
23
+ services :
24
+ postgres15 :
25
+ image : postgres:15
26
+ ports :
27
+ - 5432:5432
28
+ env :
29
+ POSTGRES_PASSWORD : password
30
+ POSTGRES_USER : main_user
31
+ POSTGRES_DB : testdb
32
+ POSTGRES_HOST_AUTH_METHOD : ' trust'
33
+ options : >-
34
+ --health-cmd pg_isready
35
+ --health-interval 10s
36
+ --health-timeout 5s
37
+ --health-retries 5
38
+
39
+ steps :
40
+ # Install dependencies
41
+ - name : Install dependencies on Ubuntu 22.04
42
+ run : |
43
+ sudo apt update -y
44
+ sudo apt install -y build-essential bison flex gettext texinfo automake autoconf curl gcovr
45
+
46
+ # Setup JDK
47
+ - name : Setup JDK
48
+ uses : actions/setup-java@v3
49
+ with :
50
+ distribution : zulu
51
+ java-version : 11
52
+
53
+ # Setup sbt
54
+ - name : Setup sbt
55
+ uses : olafurpg/setup-scala@v11
56
+ with :
57
+
58
+
59
+ # Checkout
60
+ - name : Checkout Open-COBOL-ESQL-4j
61
+ uses : actions/checkout@v3
62
+
63
+ # Install JDBC
64
+ - name : Install JDBC
65
+ run : |
66
+ sudo mkdir -p $COBOL4J_LIB_DIR $OCESQL4J_LIB_DIR
67
+ sudo curl -L -o $COBOL4J_SQLITE_JDBC_PATH https://github.com/xerial/sqlite-jdbc/releases/download/3.36.0.3/sqlite-jdbc-3.36.0.3.jar
68
+ sudo curl -L -o $OCESQL4J_POSTGRESQL_JDBC_PATH https://jdbc.postgresql.org/download/postgresql-42.2.24.jre6.jar
69
+
70
+ # Checkout opensource COBOL 4J
71
+ - name : Checkout opensourcecobol 4J
72
+ uses : actions/checkout@v3
73
+ with :
74
+ repository : opensourcecobol/opensourcecobol4j
75
+ path : opensourcecobol4j
76
+
77
+ # Install opensource COBOL 4J
78
+ - name : Install opensource COBOL 4J
79
+ run : |
80
+ cd opensourcecobol4j
81
+ ./configure --prefix=/usr/
82
+ make
83
+ sudo make install
84
+
85
+ # Build and Install Open COBOL ESQL 4J
86
+ - name : Install Open COBOL ESQL 4J
87
+ run : |
88
+ cp $OCESQL4J_POSTGRESQL_JDBC_PATH dblibj/lib
89
+ cp $COBOL4J_LIBCOBJ_JAR_PATH dblibj/lib
90
+ sh configure CFLAGS='-fprofile-arcs -ftest-coverage' --prefix=/usr/
91
+ make
92
+ sudo make install
93
+
94
+ # Run Autotest for PostgreSQL 15
95
+ - name : Run tests for PostgreSQL 15
96
+ run : |
97
+ cd tests
98
+ cp ../.github/workflows/db-settings/embed_db_info_postgresql_15_coverage.sh embed_db_info.sh
99
+ make test
100
+
101
+ # Make a coverage report
102
+ - name : Make a coverage report
103
+ run : |
104
+ cd ocesql
105
+ gcov -l *.gcda
106
+ gcovr -r . --html -o report.html
107
+ mkdir coverage-report
108
+ cp *.gcno *.gcda *.gcov report.html coverage-report
109
+
110
+ # Upload a coverage report
111
+ - name : Archive a coverage report
112
+ uses : actions/upload-artifact@v3
113
+ with :
114
+ name : code-coverage-report
115
+ path : ocesql/coverage-report/
0 commit comments