Skip to content

Fix GHA smoketest, ccm stop and wait for port 7000 to free up on ea… #83

Fix GHA smoketest, ccm stop and wait for port 7000 to free up on ea…

Fix GHA smoketest, ccm stop and wait for port 7000 to free up on ea… #83

Workflow file for this run

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: CI
on:
push:
pull_request:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
- name: Create virtual environment
run: python -m venv venv
- name: Activate virtual environment
run: source venv/bin/activate
- name: Install dependencies
run: pip install -r requirements.txt && pip install -r tests/requirements.txt
- name: Run linter
run: pylint --output-format msvs --reports y ccmlib || true
- name: Run linter for tests
run: pylint --output-format msvs --reports y tests || true
- name: Run tests
run: |
pytest --junitxml=junit.xml tests
- name: Smoke tests
run: |
sudo ./setup.py install
set -x
ccm_test() {
for i in {1..9}; do
echo "Checking nc -z 127.0.0.1 7000"
while nc -z 127.0.0.1 7000 ; do echo . ; ./ccm stop || true ; sleep 1 ; done
./ccm start && ./ccm remove && return 0 || echo retrying
sleep 20
done
echo "ccm start failed after 9 attempts"
exit 1
}
export -f ccm_test
./ccm create -h
./ccm create test -v 5.0.3 -n1 --vnodes --quiet
ccm_test
./ccm create test --version='git:cassandra-5.0.3' -n1 --vnodes --quiet
ccm_test
./ccm create test -v 6.8.54 -n1 --vnodes --dse --quiet
ccm_test
# todo, when available
#./ccm create test -v 1.1.0 -n1 --vnodes --hcd --quiet
#ccm_test
- name: Publish Test Report
uses: mikepenz/action-junit-report@v5
if: always()
with:
report_paths: 'junit.xml'
annotate_only: true