test(confluence): more cli commands #7
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# .github/workflows/test.yml | |
name: "CI" | |
on: | |
push: | |
branches: | |
- "**" | |
pull_request: | |
branches: [main] | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install dependencies | |
run: | | |
sudo apt-get update && sudo apt-get install -y libcairo2 | |
- name: Install dev tools | |
run: | | |
sudo apt-get install -y curl jq xsltproc gnupg2 libcairo2 | |
- name: Install uv (python package manager) | |
uses: astral-sh/setup-uv@v5 | |
with: | |
version: "0.5.9" | |
enable-cache: true | |
cache-dependency-glob: uv.lock | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- run: npm install @modelcontextprotocol/inspector@0.3.0 | |
- name: Install Python, venv and dependencies | |
run: | | |
uv sync --frozen --link-mode=copy | |
- name: Release version check | |
if: startsWith(github.ref, 'refs/tags/v') | |
run: | | |
TAG_VERSION=${GITHUB_REF#refs/tags/v} | |
TOML_VERSION=$(uv run python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])") | |
if [ "$TAG_VERSION" != "$TOML_VERSION" ]; then | |
echo "Release version mismatch: Tag $TAG_VERSION != pyproject.toml $TOML_VERSION" | |
exit 1 | |
fi | |
- name: Print development version info | |
if: ${{ !startsWith(github.ref, 'refs/tags/v') }} | |
run: | | |
TOML_VERSION=$(uv run python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])") | |
echo "Development build - Current version in pyproject.toml: $TOML_VERSION" | |
- name: Create .env file | |
uses: SpicyPizza/create-envfile@v2.0 | |
with: | |
envkey_STARBRIDGE_ATLASSIAN_URL: "https://your-domain.atlassian.net" | |
envkey_STARBRIDGE_ATLASSIAN_EMAIL_ADDRESS: "you@your-domain.com" | |
envkey_STARBRIDGE_ATLASSIAN_API_TOKEN: "YOUR_API_TOKEN" | |
envkey_STARBRIDGE_LOGFIRE_TOKEN: "${{ secrets.STARBRIDGE_LOGFIRE_TOKEN }}" | |
envkey_STARBRIDGE_LOGFIRE_INSTRUMENT_MCP_ENABLED: 1 | |
envkey_STARBRIDGE_LOGFIRE_ENVIRONMENT: "github_action_test" | |
fail_on_empty: true | |
- name: Validate installation | |
run: | | |
OUTPUT=$(uv run starbridge --help) | |
if [[ "$OUTPUT" != *"built with love in Berlin"* ]]; then | |
echo "Output does not contain 'built with love in Berlin'" | |
exit 1 | |
fi | |
- name: Info, tools and health | |
run: | | |
uv run starbridge info | |
- name: Run unit tests, measure coverage, lint, and check vulnerabilities | |
run: | | |
uv run nox | |
- name: Upload test results | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: test-results | |
path: | | |
junit.xml | |
coverage.xml | |
coverage_html/ | |
vulnerabilities.json | |
licenses.json | |
licenses-inverted.json | |
retention-days: 30 | |
- name: Upload coverage reports to Codecov | |
uses: codecov/codecov-action@v5 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
slug: helmut-hoffer-von-ankershoffen/starbridge | |
- name: Upload test results to Codecov | |
if: ${{ !cancelled() }} | |
uses: codecov/test-results-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: SonarQube Scan | |
uses: SonarSource/sonarqube-scan-action@v4 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} |