Skip to content

chore: achieve 100% coverage, remove avatar and templates (#11) #24

chore: achieve 100% coverage, remove avatar and templates (#11)

chore: achieve 100% coverage, remove avatar and templates (#11) #24

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
with:
go-version-file: go.mod
- name: Build
run: go build ./...
- name: Unit tests
run: go test ./... -v -coverprofile=coverage.out -covermode=atomic
- name: Upload coverage to Codecov
uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: coverage.out
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
with:
go-version-file: go.mod
- name: golangci-lint
uses: golangci/golangci-lint-action@1e7e51e771db61008b38414a730f564565cf7c20 # v9
with:
version: latest
npm-smoke-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: 24
- name: Smoke test npm pack + install
run: |
cd npm
npm pack
mkdir /tmp/test-install && cd /tmp/test-install
npm init -y
npm install "$GITHUB_WORKSPACE"/npm/confluence-cf-*.tgz 2>&1 | tee install.log
# postinstall will fail to download the binary (no matching release),
# but it must not fail on MODULE_NOT_FOUND
if grep -q "MODULE_NOT_FOUND" install.log; then
echo "ERROR: install.js has missing Node.js dependencies"
exit 1
fi
pypi-smoke-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.12"
- name: Smoke test pip build + install
run: |
pip install build==1.4.0
cd python && python -m build
pip install dist/confluence_cf-*.whl 2>&1 | tee install.log
# Verify the module imports cleanly (no missing dependencies)
python -c "from confluence_cf import _get_binary_path; print('import ok')"
docs-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
with:
go-version-file: go.mod
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6
with:
node-version: 24
- name: Install website dependencies
run: cd website && npm ci
- name: Build docs
run: make docs-build
integration:
runs-on: ubuntu-latest
needs: [test, lint]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
- uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6
with:
go-version-file: go.mod
- name: Integration tests
env:
CF_BASE_URL: ${{ secrets.CF_BASE_URL }}
CF_AUTH_TYPE: basic
CF_AUTH_USER: ${{ secrets.CF_AUTH_USER }}
CF_AUTH_TOKEN: ${{ secrets.CF_AUTH_TOKEN }}
run: go test ./test/integration/ -v -timeout 120s