diff --git a/.github/workflows/build_ci.yml b/.github/workflows/build_ci.yml new file mode 100644 index 0000000..6af656b --- /dev/null +++ b/.github/workflows/build_ci.yml @@ -0,0 +1,168 @@ +name: Build CI + +on: + push: + branches: + - main + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Install libcurl + run: apt install -y curl + + - name: Build Examples + run: | + mkdir -p dist + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/ftp_upload_example -Iinclude src/quoneq/*.cpp \ + examples/ftp_upload_example.cpp -lcurl + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/http_download_example -Iinclude src/quoneq/*.cpp \ + examples/http_download_example.cpp -lcurl + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/http_get_example -Iinclude src/quoneq/*.cpp \ + examples/http_get_example.cpp -lcurl + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/http_post_example -Iinclude src/quoneq/*.cpp \ + examples/http_post_example.cpp -lcurl + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/smtp_email_example -Iinclude src/quoneq/*.cpp \ + examples/smtp_email_example.cpp -lcurl + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/telnet_basic_example -Iinclude src/quoneq/*.cpp \ + examples/telnet_basic_example.cpp -lcurl + g++ \ + -Wall -pedantic -Wdisabled-optimization -pedantic-errors -Wextra \ + -Wcast-align -Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \ + -Werror -Wno-deprecated-declarations -Wfloat-equal -Wformat -Wformat=2 \ + -Wformat-nonliteral -Wformat-security -Wformat-y2k -Wimport -Winit-self \ + -Winvalid-pch -Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \ + -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-include-dirs \ + -Weffc++ -Wpacked -Wparentheses -Wpointer-arith -Wredundant-decls \ + -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \ + -Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default -Wswitch-enum \ + -Wtrigraphs -Wuninitialized -Wunknown-pragmas -Wunreachable-code -Wunused \ + -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value \ + -Wunused-variable -Wvariadic-macros -O2 -Wvolatile-register-var -Wwrite-strings \ + -pipe -ffast-math -s -std=c++23 -fopenmp -mabm -madx -maes -mavx -mavx2 \ + -mclflushopt -mcx16 -mf16c -mfma -mfsgsbase -mfxsr -mmmx -mmovbe -mrdrnd \ + -mrdseed -msgx -msse -msse2 -msse4.1 -msse4.2 -mxsave -mxsavec -mxsaveopt \ + -mxsave -mfpmath=sse -march=native -s -Iinclude -o dist/basic_example \ + -o dist/tor_basic_example -Iinclude src/quoneq/*.cpp \ + examples/tor_basic_example.cpp -lcurl + + - name: Build *.deb files + run: | + chmod +x tools/build.sh + ./tools/build.sh amd64 x86_64-linux-gnu + ./tools/build.sh riscv64 riscv64-linux-gnu + ./tools/build.sh armhf arm-linux-gnueabihf + + - name: Upload dist folder + uses: actions/upload-artifact@v4 + with: + name: deb-files + path: dist/ + retention-days: 1