Working PROJECT_VER and validating gitlab yml

master
Melroy van den Berg 2021-02-28 00:25:25 +01:00
parent 4a42b1d998
commit b8afc8c01f
7 changed files with 87 additions and 20 deletions

View File

@ -1,22 +1,27 @@
image: danger89/gtk3-docker-cmake-ninja:2.1
stages:
- build
- test
- upload
- release
variables:
GIT_SUBMODULE_STRATEGY: recursive
static_code_analysis:
script: ./check.sh
PACKAGE_REGISTRY_URL: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/dweb-browser/${CI_COMMIT_TAG}"
doxygen:
#stage: analysis
before_script:
- mkdir -p build/docs
script:
- doxygen docs/Doxyfile
artifacts:
paths:
- build/docs/html/
stage: build
before_script:
- mkdir -p build/docs
script:
- doxygen docs/Doxyfile
artifacts:
paths:
- build/docs/html/
build:
stage: build
script: ./scripts/build_prod.sh
artifacts:
name: "Packages"
@ -25,9 +30,43 @@ build:
- build_prod/browser-*.deb
- build_prod/browser-*.rpm
- build_prod/browser-*.tar.gz
cache:
key: "$CI_PIPELINE_ID"
paths:
- build_prod/bin
policy: push
after_script:
- echo "JOB_ID=$CI_JOB_ID" >> job.env
artifacts:
reports:
dotenv: job.env
static_code_analysis:
stage: test
script: ./check.sh
#unit_test:
# stage: test
# script :
upload:
stage: upload
image: curlimages/curl:latest
rules:
- if: $CI_COMMIT_TAG
script:
- 'curl --location --output Packages.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/jobs/${JOB_ID}/artifacts?job_token=${CI_JOB_TOKEN}'
- unzip Packages.zip
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file build_prod/browser-v${CI_COMMIT_TAG}.deb ${PACKAGE_REGISTRY_URL}/browser-v${CI_COMMIT_TAG}.deb'
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file build_prod/browser-v${CI_COMMIT_TAG}.rpm ${PACKAGE_REGISTRY_URL}/browser-v${CI_COMMIT_TAG}.rpm'
- 'curl --header "JOB-TOKEN: ${CI_JOB_TOKEN}" --upload-file build_prod/browser-v${CI_COMMIT_TAG}.tar.gz ${PACKAGE_REGISTRY_URL}/browser-v${CI_COMMIT_TAG}.tar.gz'
release:
# Caution, as of 2021-02-02 these assets links require a login, see:
# https://gitlab.com/gitlab-org/gitlab/-/issues/299384
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
- if: $CI_COMMIT_TAG
script:
- |
release-cli create --name "Release $CI_COMMIT_TAG" --tag-name $CI_COMMIT_TAG \
--assets-link "{\"name\":\"DWeb Browser (Debian/Ubuntu/Linux Mint)\",\"url\":\"${PACKAGE_REGISTRY_URL}/browser-${CI_COMMIT_TAG}.deb\"}" \
--assets-link "{\"name\":\"DWeb Browser (Red-Hat/Fedora/openSUSE)\",\"url\":\"${PACKAGE_REGISTRY_URL}/browser-${CI_COMMIT_TAG}.rpm\"}" \
--assets-link "{\"name\":\"DWeb Browser (Compressed binary)\",\"url\":\"${PACKAGE_REGISTRY_URL}/browser-${CI_COMMIT_TAG}.tar.gz\"}"

View File

@ -77,6 +77,7 @@
"*.inc": "cpp",
"syntax_extension.h": "c",
"render.h": "c",
"node.h": "c"
"node.h": "c",
"*.in": "cpp"
}
}

View File

@ -2,7 +2,6 @@ cmake_minimum_required (VERSION 3.11.0)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
# Get VERSION from most recent git tag
include(git_version)
project (browser

View File

@ -39,6 +39,8 @@ if(NOT json_POPULATED)
add_subdirectory(${json_SOURCE_DIR} ${json_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/project_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/project_config.h)
if("${CMAKE_BUILD_TYPE}" STREQUAL "Release")
# Include CPack packaging settings
#include(packaging)

View File

@ -1,4 +1,5 @@
#include "about.h"
#include "project_config.h"
About::About()
{
@ -7,7 +8,7 @@ About::About()
logo.set("../../images/browser_logo_small.png");
set_program_name("DWeb Browser");
set_version("0.6.0");
set_version(PROJECT_VER);
set_comments("The fastest decentralized & distributed Browser on planet Earth.");
set_logo(logo.get_pixbuf());
set_website("https://melroy.org/");

View File

@ -17,7 +17,10 @@ namespace n_fs = ::std::filesystem;
int IPFS::startIPFSDaemon()
{
// Be sure to kill any running daemons
std::system("killall -q ipfs");
int res = std::system("killall -q ipfs");
if (res != 0) {
// ignore
}
/// open /dev/null for writing
int fd = open("/dev/null", O_WRONLY);

View File

@ -1,9 +1,31 @@
#include "mainwindow.h"
#include "ipfs.h"
#include "project_config.h"
#include <iostream>
#include <gtkmm/application.h>
int main(int argc, char *argv[])
{
// Any arguments provided?
if (argc > 1)
{
int opt;
while ((opt = getopt(argc, argv, ":v")) != EOF) // -v is optional
switch (opt)
{
case 'v':
// Display version, and directly exit the program.
std::cout << "DWeb Browser " << PROJECT_VER << std::endl;
exit(EXIT_SUCCESS);
break;
case 'h':
case '?': // Unknown
fprintf(stderr, "Usuage: browser [-v] \nDecentralized Web Browser\n\nOptions are:\n -v : output version information and exit\n\n");
exit(EXIT_SUCCESS);
break;
}
}
pid_t child_pid = fork();
if (child_pid == 0)
{