Skip to content

Tiobe TICS nightly report #232

Tiobe TICS nightly report

Tiobe TICS nightly report #232

name: Tiobe TICS nightly report
on:
schedule:
- cron: '0 0 * * 0' # runs every sunday at midnight
pull_request:
paths:
- .github/workflows/tiobe-tics-cron.yaml
permissions:
contents: read
jobs:
TICS:
permissions:
contents: read
runs-on: ubuntu-latest
steps:
- name: Checking out repo
uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install Python dependencies
run: |
# pylint and flake8 are required by TICSQServer.
pip install pylint flake8
pip install -r test/performance/requirements-test.txt
- name: Install Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: go mod download
run: go mod download
- name: Prepare Go coverage and build
run: |
set -eux -o pipefail
# TICS requires us to have the test results in cobertura xml format under the
# directory used below
sudo make go.coverage
go install github.com/boumenot/gocover-cobertura@latest
mkdir -p .coverage
gocover-cobertura < coverage.txt > .coverage/coverage.xml
go install honnef.co/go/tools/cmd/[email protected]
- name: Get Dqlite version
run: |
source hack/env.sh
echo "TAG_DQLITE=$TAG_DQLITE" >> $GITHUB_ENV
- name: Cache Dqlite dependencies
id: dqlite-cache
uses: actions/cache@v4
with:
path: ${{ github.workspace }}/hack/.deps/static
key: dqlite-cache-${{ runner.os }}-${{ env.TAG_DQLITE }}
- name: Build Dqlite
if: steps.dqlite-cache.outputs.cache-hit != 'true'
run: |
set -eux -o pipefail
# We build the dqlite libs directly here instead of doing through make because TICS
# will try to build parts of the project itself
sudo hack/static-dqlite.sh
- name: Build Project
run: |
set -eux -o pipefail
# We need to have our project built
sudo make clean
sudo make -j static
- name: Set PATH
run: echo "${{ github.workspace }}/hack/.deps/static/musl/bin" >> $GITHUB_PATH
- name: Run TICS
uses: tiobe/tics-github-action@v3
env:
PYTHONPATH: ${{ github.workspace }}/test/performance/tests/
INSTALL_DIR: ${{ github.workspace }}/hack/.deps/static
CC: musl-gcc
CGO_CFLAGS: -I${{ github.workspace }}/hack/.deps/static/include
CGO_LDFLAGS: -L${{ github.workspace }}/hack/.deps/static/lib -luv -ldqlite -llz4 -lsqlite3 -Wl,-z,stack-size=1048576
with:
mode: qserver
project: ${{ github.event.repository.name }}
viewerUrl: https://canonical.tiobe.com/tiobeweb/TICS/api/cfg?name=GoProjects
ticsAuthToken: ${{ secrets.TICSAUTHTOKEN }}
installTics: true