WHY2/.gitlab-ci.yml

83 lines
2.9 KiB
YAML
Raw Normal View History

2024-02-17 19:49:27 +01:00
# This is part of WHY2
# Copyright (C) 2022 Václav Šmejkal
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
variables:
CLIENT: "./out/why2-chat-client"
SERVER: "./out/why2-chat-server"
2024-02-18 11:20:34 +01:00
CORE_OUTPUT: "./out/why2-core-test"
CORE_APP: "why2"
2024-02-18 12:22:02 +01:00
LOGGER_OUTPUT: "./out/why2-logger-test"
LOGGER_APP: "why2-logger"
2024-02-18 11:20:34 +01:00
VALGRIND: "valgrind --leak-check=full --show-leak-kinds=reachable --track-origins=yes -s"
2025-01-09 19:09:33 +01:00
GDB: "gdb -ex \"run\" -ex \"quit\" --batch"
2025-01-09 19:01:58 +01:00
CONFIGURE: "./configure.sh"
NEEDED_STUFF: "sudo lsb-release gdb"
2024-02-17 19:49:27 +01:00
why2-chat-build:
stage: build
2024-02-18 11:23:38 +01:00
image: rust:latest # Fixes cargo installation problems in ./configure.sh
2024-02-17 19:49:27 +01:00
script:
- apt-get update # Update repos
2025-01-09 19:01:58 +01:00
- apt-get install $NEEDED_STUFF -y # Install needed stuff
- chmod +x $CONFIGURE # Permissions
- sudo $CONFIGURE # Preparation
2024-02-18 11:23:38 +01:00
- make install BYPASS_CHECK=true # Install WHY2
- make build_chat # Build Chat
2024-02-17 19:49:27 +01:00
artifacts:
paths:
- $CLIENT
2024-02-18 11:20:34 +01:00
- $SERVER
why2-core-test:
stage: build
image: rust:latest
script:
- apt-get update # Update repos
2025-01-09 19:01:58 +01:00
- apt-get install $NEEDED_STUFF valgrind -y # Install needed stuff
- chmod +x $CONFIGURE # Permissions
- sudo $CONFIGURE # Preparation
2024-02-18 11:23:38 +01:00
- make install BYPASS_CHECK=true # Install WHY2
- make test_core # Build WHY2 Test
2025-01-09 19:26:47 +01:00
- ${GDB} $CORE_OUTPUT # Test Lib
- ${GDB} $CORE_APP # Test App
2024-02-18 12:22:02 +01:00
- $VALGRIND $CORE_OUTPUT # Test Lib by Valgrind
why2-logger-test:
stage: build
image: rust:latest
script:
- apt-get update # Update repos
2025-01-09 19:01:58 +01:00
- apt-get install $NEEDED_STUFF valgrind -y # Install needed stuff
- chmod +x $CONFIGURE # Permissions
- sudo $CONFIGURE # Preparation
2024-02-18 12:22:02 +01:00
- make install BYPASS_CHECK=true # Install WHY2
- make test_logger # Build WHY2 Test
2025-01-09 19:26:47 +01:00
- ${GDB} $LOGGER_OUTPUT # Test Lib
- ${GDB} $LOGGER_APP # Test App
2024-02-18 12:47:46 +01:00
- $VALGRIND $LOGGER_OUTPUT # Test Lib by Valgrind
why2-project:
stage: build
image: rust:latest
script:
- apt-get update # Update repos
2025-01-09 19:01:58 +01:00
- apt-get install $NEEDED_STUFF -y # Install needed stuff
- chmod +x $CONFIGURE # Permissions
- sudo $CONFIGURE # Preparation
2024-02-18 12:47:46 +01:00
- make install BYPASS_CHECK=true # Install WHY2
2025-01-09 19:01:58 +01:00
- curl -Lo ./test.c https://gist.github.com/ENGO150/d8419b6c31ffb68ebb930a5b41af8c73/raw # Download WHY2 test project
- cc test.c -lwhy2 -Wall -o ./test # Build WHY2 project
- $GDB ./test # Run Test