https://github.com/portableclass/infotecs-sqlite
SQLite build automation project
https://github.com/portableclass/infotecs-sqlite
ansible cmake conan docker gcc gitlab-ci msvc sqlite vagrant
Last synced: 3 months ago
JSON representation
SQLite build automation project
- Host: GitHub
- URL: https://github.com/portableclass/infotecs-sqlite
- Owner: portableclass
- Created: 2025-08-12T19:29:28.000Z (11 months ago)
- Default Branch: master
- Last Pushed: 2025-08-13T10:11:18.000Z (11 months ago)
- Last Synced: 2025-08-13T12:17:46.387Z (11 months ago)
- Topics: ansible, cmake, conan, docker, gcc, gitlab-ci, msvc, sqlite, vagrant
- Language: C
- Homepage:
- Size: 2.14 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# SQLite build automation project
[](https://gitlab.com/portableclass-group/infotecs-sqlite/pipelines)


This project implements an automated build pipeline for SQLite library across multiple platforms and environments. It includes solutions for native compilation, containerized builds, virtual machine provisioning, dependency management, and CI/CD integration.
---
## 📦 Building SQLite library for GCC (.so) and MSVC (.dll). Creating Docker Image
### Prerequisites
- Linux system with GCC
- Windows system with Visual Studio
- Docker installed
### Steps
1. **Download SQLite sources**:
```bash
wget https://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip
unzip sqlite-amalgamation-3260000.zip -d sqlite-sources
```
2. **Use my [CMakeLists.txt](https://github.com/portableclass/infotecs-sqlite/blob/master/1_build-sqlite-so/sqlite-sources/CMakeLists.txt)**
3. **Run build**:
```bash
mkdir build && cd build
cmake .. && make
```
4. **Result (.so) should be**:
```bash
user@host:~/sqlite-sources/build$ ls -a
. .. CMakeCache.txt CMakeFiles Makefile cmake_install.cmake libsqlite3.so
```
### Follow steps in [readme-get-image-from-dockerfile.md](https://github.com/portableclass/infotecs-sqlite/blob/master/1_build-sqlite-so/readme-get-image-from-dockerfile.md) to create Docker Image
---
## 🖥️ Running VM with Vagrant + ansible-playbook for automatic build
### Prerequisites
- Linux system
- VirtualBox
- Vagrant
- python venv
- ansible
### Artifacts
1. [Vagrantfile](https://github.com/portableclass/infotecs-sqlite/blob/master/2_vm-vagrant-ansible/Vagrantfile) - VM configuration
2. [install-docker.yml](https://github.com/portableclass/infotecs-sqlite/blob/master/2_vm-vagrant-ansible/install-docker.yml) - Docker setup playbook
3. [build-sqlite.yml](https://github.com/portableclass/infotecs-sqlite/blob/master/2_vm-vagrant-ansible/build-sqlite.yml) - Build automation playbook
### Run VM
```bash
vagrant up
```
---
## 🛠️ Example of building a project with Conan
### Prerequisites
- Conan 2.x
- CMake
- GCC
### Project structure
```text
conan-app/
├── conanfile.py
├── CMakeLists.txt
└── src/
└── main.cpp
```
### Artifacts
1. Source files ([main.cpp](https://github.com/portableclass/infotecs-sqlite/blob/master/3_conan-example/conan-app/src/main.cpp))
2. Build configuration ([conanfile.py](https://github.com/portableclass/infotecs-sqlite/blob/master/3_conan-example/conan-app/conanfile.py), [CMakeLists.txt](https://github.com/portableclass/infotecs-sqlite/blob/master/3_conan-example/conan-app/CMakeLists.txt))
### Run build
```bash
mkdir build && cd build
conan install .. --build=missing \
-s compiler=gcc \
-s compiler.version=12 \
-s compiler.libcxx=libstdc++11
conan build ..
```
### Run app
```bash
(python_venv) user@host:~/conan-app/build$ ./Release/hello_conan
(python_venv) user@host:~/conan-app/build$ ./Release/hello_conan --name=Conan
```
---
## 🚀 CI/CD for building SQLite library in GitLab
### Use my GitLab CI configuration ([.gitlab-ci.yml](https://github.com/portableclass/infotecs-sqlite/blob/master/4_gitlab/.gitlab-ci.yml))
## 🔗 Links
1. [Docker Image](https://hub.docker.com/repository/docker/portableclass/sqlite-builder/general)
2. [GitLab Project](https://gitlab.com/portableclass-group/infotecs-sqlite)