复现已有算法
This commit is contained in:
+12
@@ -0,0 +1,12 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: drogonframework
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
custom: # ['https://paypal.me/antao2019']
|
||||
@@ -0,0 +1,43 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Notice**
|
||||
If you need support or clarification regarding the usage of Drogon in your project, visit the official Drogon support channel at [gitter](https://gitter.im/drogon-web/community)
|
||||
|
||||
Please create a new issue only if you think you have found a bug or if have a feature request/enhancement.
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,25 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Notice**
|
||||
If you need support or clarification regarding the usage of Drogon in your project, visit the official Drogon support channel at [gitter](https://gitter.im/drogon-web/community)
|
||||
|
||||
Please create a new issue only if you think you have found a bug or if have a feature request/enhancement.
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "monthly"
|
||||
+237
@@ -0,0 +1,237 @@
|
||||
name: Build & Test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
env:
|
||||
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
windows:
|
||||
name: windows/msvc - ${{ matrix.link }}
|
||||
runs-on: windows-2022
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
link: ["STATIC", "SHARED"]
|
||||
steps:
|
||||
- name: Checkout Drogon source code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
run: pip install conan
|
||||
|
||||
- name: Create build directory
|
||||
run: mkdir build
|
||||
|
||||
- name: Install conan packages
|
||||
working-directory: ./build
|
||||
run: |
|
||||
conan profile detect
|
||||
conan install .. -s compiler="msvc" -sbuild_type=Debug --build=missing -s compiler.cppstd=17
|
||||
|
||||
- name: Create Build Environment & Configure Cmake
|
||||
shell: bash
|
||||
working-directory: ./build
|
||||
run: |
|
||||
[[ ${{ matrix.link }} == "SHARED" ]] && shared="ON" || shared="OFF"
|
||||
cmake .. \
|
||||
-DCMAKE_BUILD_TYPE=Debug \
|
||||
-DBUILD_TESTING=on \
|
||||
-DBUILD_SHARED_LIBS=$shared \
|
||||
-DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" \
|
||||
-DBUILD_CTL=ON \
|
||||
-DBUILD_EXAMPLES=ON \
|
||||
-DUSE_SPDLOG=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=../install \
|
||||
-DCMAKE_POLICY_DEFAULT_CMP0091=NEW \
|
||||
-DCMAKE_CXX_STANDARD=17
|
||||
|
||||
- name: Build
|
||||
run: cmake --build build --target install --parallel
|
||||
|
||||
- name: Test
|
||||
shell: bash
|
||||
run: ./test.sh -w
|
||||
|
||||
macos:
|
||||
runs-on: macos-${{ matrix.osver }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
osver: [14, 15]
|
||||
steps:
|
||||
- name: Checkout Drogon source code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
# Already installed: brotli, zlib, lz4, sqlite3
|
||||
run: brew install ninja jsoncpp mariadb hiredis redis spdlog postgresql@14
|
||||
|
||||
- name: Create Build Environment & Configure Cmake
|
||||
# Some projects don't allow in-source building, so create a separate build directory
|
||||
# We'll use this as our working directory for all subsequent commands
|
||||
run: |
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||
-DBUILD_TESTING=on \
|
||||
-DUSE_SPDLOG=ON \
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
|
||||
- name: Build
|
||||
working-directory: ./build
|
||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||
run: ninja && sudo ninja install
|
||||
|
||||
- name: Prepare for testing
|
||||
run: |
|
||||
brew services restart postgresql@14
|
||||
brew services start mariadb
|
||||
brew services start redis
|
||||
sleep 4
|
||||
mariadb -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('')"
|
||||
mariadb -e "GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'"
|
||||
mariadb -e "FLUSH PRIVILEGES"
|
||||
brew services restart mariadb
|
||||
sleep 4
|
||||
psql -c 'create user postgres superuser;' postgres
|
||||
|
||||
- name: Test
|
||||
# Execute tests defined by the CMake configuration.
|
||||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
|
||||
run: ./test.sh -t
|
||||
|
||||
ubuntu:
|
||||
runs-on: ubuntu-22.04
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
link: [SHARED, STATIC]
|
||||
compiler:
|
||||
- cxx: g++
|
||||
ver: 9
|
||||
- cxx: g++
|
||||
ver: 10
|
||||
- cxx: g++
|
||||
ver: 11
|
||||
- cxx: g++
|
||||
ver: 12
|
||||
- cxx: g++
|
||||
ver: 13
|
||||
- cxx: clang++
|
||||
ver: 11
|
||||
- cxx: clang++
|
||||
ver: 12
|
||||
- cxx: clang++
|
||||
ver: 13
|
||||
- cxx: clang++
|
||||
ver: 14
|
||||
- cxx: clang++
|
||||
ver: 15
|
||||
- cxx: clang++
|
||||
ver: 16
|
||||
- cxx: clang++
|
||||
ver: 17
|
||||
include:
|
||||
- link: STATIC
|
||||
compiler:
|
||||
cxx: g++
|
||||
ver: 13
|
||||
feature: coroutines
|
||||
env:
|
||||
CXX: ${{ matrix.compiler.cxx }}-${{ matrix.compiler.ver }}
|
||||
steps:
|
||||
- name: Checkout Drogon source code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
# Installing packages might fail as the github image becomes outdated
|
||||
sudo apt update
|
||||
# These aren't available or don't work well in vcpkg
|
||||
sudo apt-get install -y libjsoncpp-dev uuid-dev libssl-dev zlib1g-dev libsqlite3-dev
|
||||
sudo apt-get install -y ninja-build libbrotli-dev
|
||||
sudo apt-get install -y libspdlog-dev
|
||||
|
||||
- name: Install postgresql
|
||||
run: |
|
||||
sudo apt-get --purge remove postgresql postgresql-doc postgresql-common postgresql-client-common
|
||||
sudo apt-get -y install postgresql-all
|
||||
|
||||
- name: Install g++
|
||||
if: startsWith(matrix.compiler.cxx, 'g++') && (matrix.compiler.ver == 13 || matrix.compiler.ver == 9)
|
||||
run: |
|
||||
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
|
||||
sudo apt-get install g++-${{ matrix.compiler.ver }}
|
||||
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-${{ matrix.compiler.ver }} ${{ matrix.compiler.ver }}
|
||||
|
||||
- name: Install Clang
|
||||
if: startsWith(matrix.compiler.cxx, 'clang') && matrix.compiler.ver < 13
|
||||
run: sudo apt-get install clang-${{ matrix.compiler.ver }}
|
||||
|
||||
- name: Install Clang
|
||||
if: startsWith(matrix.compiler.cxx, 'clang') && matrix.compiler.ver >= 13
|
||||
run: |
|
||||
wget https://apt.llvm.org/llvm.sh
|
||||
chmod +x ./llvm.sh
|
||||
sudo ./llvm.sh ${{ matrix.compiler.ver }}
|
||||
|
||||
- name: Export `shared`
|
||||
run: |
|
||||
[[ ${{ matrix.link }} == "SHARED" ]] && shared="ON" || shared="OFF"
|
||||
echo "shared=$shared" >> $GITHUB_ENV
|
||||
|
||||
- name: Create Build Environment & Configure Cmake
|
||||
# Some projects don't allow in-source building, so create a separate build directory
|
||||
# We'll use this as our working directory for all subsequent commands
|
||||
if: matrix.compiler.feature != 'coroutines'
|
||||
run: |
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||
-DBUILD_TESTING=on \
|
||||
-DUSE_SPDLOG=ON \
|
||||
-DBUILD_SHARED_LIBS=$shared
|
||||
- name: Create Build Environment & Configure Cmake (coroutines)
|
||||
# Some projects don't allow in-source building, so create a separate build directory
|
||||
# We'll use this as our working directory for all subsequent commands
|
||||
if: matrix.compiler.feature == 'coroutines'
|
||||
run: |
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||
-DBUILD_TESTING=on \
|
||||
-DUSE_SPDLOG=ON \
|
||||
-DCMAKE_CXX_FLAGS="-fcoroutines" \
|
||||
-DBUILD_SHARED_LIBS=$shared \
|
||||
|
||||
- name: Build
|
||||
working-directory: ./build
|
||||
# Execute the build. You can specify a specific target with "--target <NAME>"
|
||||
run: ninja && sudo ninja install
|
||||
|
||||
- name: Prepare for testing
|
||||
run: |
|
||||
sudo systemctl start postgresql
|
||||
sleep 1
|
||||
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '12345'" postgres
|
||||
|
||||
- name: Test
|
||||
# Execute tests defined by the CMake configuration.
|
||||
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
|
||||
run: ./test.sh -t
|
||||
@@ -0,0 +1,80 @@
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ 'master' ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ 'master' ]
|
||||
schedule:
|
||||
- cron: '46 7 * * 5'
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
||||
|
||||
env:
|
||||
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
|
||||
BUILD_TYPE: Release
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'cpp' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
|
||||
env:
|
||||
SHARED: ON
|
||||
|
||||
steps:
|
||||
- name: Checkout Drogon source code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt-get install -y libjsoncpp-dev uuid-dev libssl-dev zlib1g-dev libsqlite3-dev
|
||||
sudo apt-get install -y ninja-build libbrotli-dev
|
||||
|
||||
- name: Create Build Environment & Configure Cmake
|
||||
run: |
|
||||
cmake -B build -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||
-DBUILD_TESTING=on \
|
||||
-DBUILD_SHARED_LIBS=$SHARED
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v4
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
- name: Build
|
||||
working-directory: ./build
|
||||
run: ninja && sudo ninja install
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v4
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
@@ -0,0 +1,15 @@
|
||||
# Look for typos in the codebase using codespell.
|
||||
# https://github.com/codespell-project/codespell#readme
|
||||
name: codespell
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
branches: [master]
|
||||
jobs:
|
||||
codespell:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- run: sudo apt-get install -y codespell
|
||||
- run: codespell --ignore-words-list="coo,folx,ot,statics,xwindows,NotIn,aNULL," --skip="*.csp"
|
||||
@@ -0,0 +1,41 @@
|
||||
name: C++
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master]
|
||||
pull_request:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
format:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install dos2unix
|
||||
run: sudo apt-get install -y dos2unix
|
||||
|
||||
- name: Install clang-format-17
|
||||
run: |
|
||||
wget https://apt.llvm.org/llvm.sh
|
||||
chmod +x ./llvm.sh
|
||||
sudo ./llvm.sh 17
|
||||
sudo apt-get install -y clang-format-17
|
||||
|
||||
- name: Check formatting
|
||||
run: ./format.sh && git diff --exit-code
|
||||
env:
|
||||
CLANG_FORMAT: clang-format-17
|
||||
|
||||
cpplint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install cpplint
|
||||
run: pip install cpplint
|
||||
|
||||
- name: Run lint
|
||||
run: cpplint --recursive .
|
||||
@@ -0,0 +1,28 @@
|
||||
name: Build and Push Docker Image
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created] # 当新版本被创建时触发
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Check out code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Build Docker image
|
||||
run: |
|
||||
cd docker/ubuntu
|
||||
docker build -t drogonframework/drogon:latest .
|
||||
|
||||
- name: Push Docker image
|
||||
run: |
|
||||
docker push drogonframework/drogon:latest
|
||||
Reference in New Issue
Block a user