Skip to content

Commit

Permalink
Configure CI
Browse files Browse the repository at this point in the history
  • Loading branch information
avsej committed Jun 26, 2024
1 parent 4f7f168 commit ec36a60
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 3 deletions.
114 changes: 114 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
name: Test Build

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
build:
strategy:
fail-fast: false
matrix:
os:
- ubuntu-24.04
runs-on: ${{ matrix.os }}
steps:
- name: Install cbdinocluster
shell: python
run: |
import os
import platform
import urllib.request
home_bin_path = os.path.expanduser("~/bin")
os.makedirs(home_bin_path, exist_ok=True)
cbdinocluster_filename = "cbdinocluster-windows-amd64.exe" if platform.system() == "Windows" else "cbdinocluster-linux-amd64"
cbdinocluster_url = f"https://github.com/couchbaselabs/cbdinocluster/releases/download/v0.0.46/{cbdinocluster_filename}"
cbdinocluster_path = os.path.join(home_bin_path, 'cbdinocluster')
urllib.request.urlretrieve(cbdinocluster_url, cbdinocluster_path)
if platform.system() != "Windows":
os.chmod(cbdinocluster_path, 0o755)
github_path = os.getenv("GITHUB_PATH")
if github_path:
with open(github_path, "a") as f:
f.write(f"{home_bin_path}\n")
- name: Initialize cbdinocluster
shell: python
run: |
import os
import platform
import subprocess
subprocess.run(['cbdinocluster', '-v', 'init', '--auto', '--disable-aws', '--disable-azure', '--disable-capella', '--disable-k8s'])
- name: Start Couchbase Cluster
shell: python
run: |
import os
import sys
import platform
import subprocess
def capture_output(command):
result = subprocess.run(command, shell=True, check=True, text=True, stdout=subprocess.PIPE, stderr=sys.stderr)
return result.stdout.strip()
cluster_config = """\
nodes:
- count: 2
version: 7.6.1
services:
- kv
- n1ql
- index
- count: 1
version: 7.6.1
services:
- kv
- fts
- cbas
- eventing
docker:
kv-memory: 1600
"""
with open("cluster.yaml", "w") as f:
f.write(cluster_config)
print(f"##[group]Allocate")
cluster_id = capture_output(['cbdinocluster', '-v', 'allocate', '--def-file', 'cluster.yaml'])
print("##[endgroup]")
print(f"##[group]Buckets")
subprocess.run(['cbdinocluster', '-v', 'buckets', 'add', cluster_id, 'default', '--ram-quota-mb=100', '--flush-enabled=true'])
subprocess.run(['cbdinocluster', '-v', 'buckets', 'load-sample', cluster_id, 'travel-sample'])
print("##[endgroup]")
connection_string = capture_output(['cbdinocluster', '-v', 'connstr', cluster_id])
github_env = os.getenv("GITHUB_ENV")
if github_env:
with open(github_env, "a") as f:
f.write(f"CLUSTER_ID={cluster_id}\n")
f.write(f"CONNECTION_STRING={connection_string}\n")
- uses: actions/checkout@v2
with:
submodules: recursive
- name: Build
timeout-minutes: 60
shell: python
run: |
import os
import subprocess
os.mkdir('build')
print("##[group]CMake Configure")
subprocess.run(['cmake', '-S', '.', '-B', 'build'])
print("##[endgroup]")
print("##[group]CMake Build")
subprocess.run(['cmake', '--build', 'build'])
print("##[endgroup]")
- name: Run
timeout-minutes: 60
shell: python
run: |
import os
import subprocess
for root, _, files in os.walk('build'):
for file in files:
filepath = os.path.join(root, file)
if os.access(filepath, os.X_OK) or filepath.endswith('.exe'):
print(f"##[group]{filepath}")
subprocess.run(filepath)
print("##[endgroup]")
5 changes: 2 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

```bash
mkdir -p build
cd build
cmake ..
cmake --build .
cmake -S . -B build
cmake --build build
```

0 comments on commit ec36a60

Please sign in to comment.