mirror of
https://github.com/Links2004/arduinoWebSockets.git
synced 2025-07-21 10:52:06 +02:00
add WebSocketsVersion.h and some build checks
This commit is contained in:
12
.github/workflows/main.yml
vendored
12
.github/workflows/main.yml
vendored
@ -14,6 +14,14 @@ on:
|
|||||||
|
|
||||||
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
||||||
jobs:
|
jobs:
|
||||||
|
check_version_files:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: check version
|
||||||
|
run: |
|
||||||
|
$GITHUB_WORKSPACE/travis/version.py --check
|
||||||
|
|
||||||
prepare_example_json:
|
prepare_example_json:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -147,6 +155,7 @@ jobs:
|
|||||||
|
|
||||||
- name: copy code
|
- name: copy code
|
||||||
run: |
|
run: |
|
||||||
|
mkdir -p $HOME/Arduino/libraries/
|
||||||
cp -r $GITHUB_WORKSPACE $HOME/Arduino/libraries/arduinoWebSockets
|
cp -r $GITHUB_WORKSPACE $HOME/Arduino/libraries/arduinoWebSockets
|
||||||
|
|
||||||
- name: config IDE
|
- name: config IDE
|
||||||
@ -158,6 +167,7 @@ jobs:
|
|||||||
arduino --pref update.check=false
|
arduino --pref update.check=false
|
||||||
|
|
||||||
- name: build example
|
- name: build example
|
||||||
|
timeout-minutes: 20
|
||||||
run: |
|
run: |
|
||||||
export DISPLAY=:1.0
|
export DISPLAY=:1.0
|
||||||
export PATH="$HOME/arduino_ide:$PATH"
|
export PATH="$HOME/arduino_ide:$PATH"
|
||||||
@ -166,7 +176,7 @@ jobs:
|
|||||||
build_sketch arduino $SKETCH
|
build_sketch arduino $SKETCH
|
||||||
|
|
||||||
done:
|
done:
|
||||||
needs: [prepare_ide, prepare_example_json, build]
|
needs: [prepare_ide, prepare_example_json, build, check_version_files]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Done
|
- name: Done
|
||||||
|
26
library.json
26
library.json
@ -1,25 +1,25 @@
|
|||||||
{
|
{
|
||||||
"name": "WebSockets",
|
|
||||||
"description": "WebSocket Server and Client for Arduino based on RFC6455",
|
|
||||||
"keywords": "wifi, http, web, server, client, websocket",
|
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
|
"maintainer": true,
|
||||||
"name": "Markus Sattler",
|
"name": "Markus Sattler",
|
||||||
"url": "https://github.com/Links2004",
|
"url": "https://github.com/Links2004"
|
||||||
"maintainer": true
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"repository": {
|
"description": "WebSocket Server and Client for Arduino based on RFC6455",
|
||||||
"type": "git",
|
|
||||||
"url": "https://github.com/Links2004/arduinoWebSockets.git"
|
|
||||||
},
|
|
||||||
"version": "2.3.2",
|
|
||||||
"license": "LGPL-2.1",
|
|
||||||
"export": {
|
"export": {
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"tests"
|
"tests"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"frameworks": "arduino",
|
"frameworks": "arduino",
|
||||||
"platforms": "atmelavr, espressif8266, espressif32"
|
"keywords": "wifi, http, web, server, client, websocket",
|
||||||
}
|
"license": "LGPL-2.1",
|
||||||
|
"name": "WebSockets",
|
||||||
|
"platforms": "atmelavr, espressif8266, espressif32",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/Links2004/arduinoWebSockets.git"
|
||||||
|
},
|
||||||
|
"version": "2.3.2"
|
||||||
|
}
|
@ -40,6 +40,8 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "WebSocketsVersion.h"
|
||||||
|
|
||||||
#ifndef NODEBUG_WEBSOCKETS
|
#ifndef NODEBUG_WEBSOCKETS
|
||||||
#ifdef DEBUG_ESP_PORT
|
#ifdef DEBUG_ESP_PORT
|
||||||
#define DEBUG_WEBSOCKETS(...) \
|
#define DEBUG_WEBSOCKETS(...) \
|
||||||
|
36
src/WebSocketsVersion.h
Normal file
36
src/WebSocketsVersion.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/**
|
||||||
|
* @file WebSocketsVersion.h
|
||||||
|
* @date 07.01.2021
|
||||||
|
* @author Markus Sattler
|
||||||
|
*
|
||||||
|
* Copyright (c) 2015 Markus Sattler. All rights reserved.
|
||||||
|
* This file is part of the WebSockets for Arduino.
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Lesser General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library 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
|
||||||
|
* Lesser General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Lesser General Public
|
||||||
|
* License along with this library; if not, write to the Free Software
|
||||||
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef WEBSOCKETSVERSION_H_
|
||||||
|
#define WEBSOCKETSVERSION_H_
|
||||||
|
|
||||||
|
#define WEBSOCKETS_VERSION "2.3.2"
|
||||||
|
|
||||||
|
#define WEBSOCKETS_VERSION_MAJOR 2
|
||||||
|
#define WEBSOCKETS_VERSION_MINOR 3
|
||||||
|
#define WEBSOCKETS_VERSION_PATCH 2
|
||||||
|
|
||||||
|
#define WEBSOCKETS_VERSION_INT 2003002
|
||||||
|
|
||||||
|
#endif /* WEBSOCKETSVERSION_H_ */
|
81
travis/version.py
Executable file
81
travis/version.py
Executable file
@ -0,0 +1,81 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import json
|
||||||
|
import configparser
|
||||||
|
import argparse
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
|
||||||
|
travis_dir = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
base_dir = os.path.abspath(travis_dir + "/../")
|
||||||
|
|
||||||
|
def get_library_properties_version():
|
||||||
|
library_properties = {}
|
||||||
|
with open(f'{base_dir}/library.properties', 'r') as f:
|
||||||
|
library_properties = configparser.ConfigParser()
|
||||||
|
library_properties.read_string('[root]\n' + f.read())
|
||||||
|
return library_properties['root']['version']
|
||||||
|
|
||||||
|
def get_library_json_version():
|
||||||
|
library_json = {}
|
||||||
|
with open(f'{base_dir}/library.json', 'r') as f:
|
||||||
|
library_json = json.load(f)
|
||||||
|
return library_json['version']
|
||||||
|
|
||||||
|
def get_header_versions():
|
||||||
|
data = {}
|
||||||
|
define = re.compile('^#define WEBSOCKETS_VERSION_?(.*) "?([0-9\.]*)"?$')
|
||||||
|
with open(f'{base_dir}/src/WebSocketsVersion.h', 'r') as f:
|
||||||
|
for line in f:
|
||||||
|
m = define.match(line)
|
||||||
|
if m:
|
||||||
|
name = m[1]
|
||||||
|
if name == "":
|
||||||
|
name = "VERSION"
|
||||||
|
data[name] = m[2]
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Checks and update Version files')
|
||||||
|
parser.add_argument(
|
||||||
|
'--update', action=argparse.BooleanOptionalAction, default=False)
|
||||||
|
parser.add_argument(
|
||||||
|
'--check', action=argparse.BooleanOptionalAction, default=True)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
if args.update:
|
||||||
|
library_properties_version = get_library_properties_version()
|
||||||
|
|
||||||
|
with open(f'{base_dir}/library.json', 'r') as f:
|
||||||
|
library_json = json.load(f)
|
||||||
|
|
||||||
|
library_json['version'] = library_properties_version
|
||||||
|
|
||||||
|
with open(f'{base_dir}/library.json', 'w') as f:
|
||||||
|
json.dump(library_json, f, indent=4, sort_keys=True)
|
||||||
|
|
||||||
|
|
||||||
|
library_json_version = get_library_json_version()
|
||||||
|
library_properties_version = get_library_properties_version()
|
||||||
|
header_version = get_header_versions()
|
||||||
|
|
||||||
|
print("WebSocketsVersion.h", header_version)
|
||||||
|
print(f"library.json: {library_json_version}")
|
||||||
|
print(f"library.properties: {library_properties_version}")
|
||||||
|
|
||||||
|
if args.check:
|
||||||
|
if library_json_version != library_properties_version or header_version['VERSION'] != library_properties_version:
|
||||||
|
raise Exception('versions did not match!')
|
||||||
|
|
||||||
|
hvs = header_version['VERSION'].split('.')
|
||||||
|
if header_version['MAJOR'] != hvs[0]:
|
||||||
|
raise Exception('header MAJOR version wrong!')
|
||||||
|
if header_version['MINOR'] != hvs[1]:
|
||||||
|
raise Exception('header MINOR version wrong!')
|
||||||
|
if header_version['PATCH'] != hvs[2]:
|
||||||
|
raise Exception('header PATCH version wrong!')
|
||||||
|
|
||||||
|
intversion = int(hvs[0]) * 1000000 + int(hvs[1]) * 1000 + int(hvs[2])
|
||||||
|
if int(header_version['INT']) != intversion:
|
||||||
|
raise Exception('header INT version wrong!')
|
Reference in New Issue
Block a user