Skip to content

Commit 198d50b

Browse files
ci: run example programs in a Docker container
1 parent 788e35b commit 198d50b

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed

.github/workflows/ci.yml

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,4 +42,56 @@ jobs:
4242
run: |
4343
docker build -t opensourcecobol/opensourcecobol4j:utf8-"$version_string_prefix" . \
4444
--build-arg opensource_COBOL_4J_version="$opensource_COBOL_4J_version" \
45-
--build-arg Open_COBOL_ESQL_4J_version="$Open_COBOL_ESQL_4J_version"
45+
--build-arg Open_COBOL_ESQL_4J_version="$Open_COBOL_ESQL_4J_version"
46+
47+
integration-test:
48+
runs-on: ubuntu-latest
49+
needs: [build]
50+
51+
steps:
52+
- name: Checkout
53+
uses: actions/checkout@v5
54+
55+
- name: Load configuration
56+
run: |
57+
echo opensource_COBOL_4J_version="$(jq -r '.opensource_COBOL_4J_version' build-config.json)" >> $GITHUB_ENV
58+
echo Open_COBOL_ESQL_4J_version="$(jq -r '.Open_COBOL_ESQL_4J_version' build-config.json)" >> $GITHUB_ENV
59+
echo version_string_prefix="$(jq -r '.version_string_prefix' build-config.json)" >> $GITHUB_ENV
60+
61+
- name: Build Docker image for testing
62+
run: |
63+
docker build -t opensourcecobol/opensourcecobol4j:"$version_string_prefix" . \
64+
--build-arg opensource_COBOL_4J_version="$opensource_COBOL_4J_version" \
65+
--build-arg Open_COBOL_ESQL_4J_version="$Open_COBOL_ESQL_4J_version"
66+
67+
- name: Start Docker Compose services
68+
working-directory: ./docker-compose
69+
run: |
70+
export opensource_COBOL_4J_version="$opensource_COBOL_4J_version"
71+
export Open_COBOL_ESQL_4J_version="$Open_COBOL_ESQL_4J_version"
72+
echo "Starting Docker Compose with the following environment:"
73+
echo "opensource_COBOL_4J_version: $opensource_COBOL_4J_version"
74+
echo "Open_COBOL_ESQL_4J_version: $Open_COBOL_ESQL_4J_version"
75+
docker compose up -d
76+
77+
- name: Wait for services to be ready
78+
run: |
79+
echo "Waiting for services to start..."
80+
sleep 15
81+
echo "Checking service status:"
82+
docker compose -f docker-compose/docker-compose.yml ps
83+
echo "Checking if oc4j_client container is running:"
84+
docker ps --filter "name=oc4j_client" --format "table {{.Names}}\t{{.Status}}"
85+
86+
- name: Copy test files to container
87+
run: |
88+
docker cp ocesql4j_sample oc4j_client:/tmp/ocesql4j_sample
89+
90+
- name: Run OCESQL tests
91+
run: |
92+
docker compose -f docker-compose/docker-compose.yml exec -T oc4j_client bash -c "cd /tmp/ocesql4j_sample && make"
93+
94+
- name: Cleanup
95+
if: always()
96+
run: |
97+
docker compose -f docker-compose/docker-compose.yml down -v

.github/workflows/docker-compose.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,9 @@ jobs:
2626
--build-arg opensource_COBOL_4J_version="$opensource_COBOL_4J_version" \
2727
--build-arg Open_COBOL_ESQL_4J_version="$Open_COBOL_ESQL_4J_version"
2828
docker compose up -d
29+
30+
- name: Run example programs
31+
working-directory: docker-compose
32+
run: |
33+
docker cp ../ocesql4j_sample oc4j_client:/tmp/ocesql4j_sample
34+
docker exec oc4j_client bash -c "cd /tmp/ocesql4j_sample && make"

0 commit comments

Comments
 (0)