diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9928a76 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + - package-ecosystem: "maven" + directory: "/" + schedule: + interval: "weekly" + day: "sunday" + time: "00:25" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + day: "saturday" diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 3619963..307db15 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -1,4 +1,4 @@ -name: C/C++ CI +name: C/C++ CI and Maven Package on: push: @@ -10,37 +10,40 @@ on: jobs: build: runs-on: ubuntu-latest - strategy: - matrix: - # os: [centos7, rhel8] - os: [rhel8] - include: - # - os: centos7 - # container: "centos:7" - - os: rhel8 - container: "oraclelinux:8" - container: ${{ matrix.container }} - + container: oraclelinux:8 + permissions: + contents: read steps: - - name: checkout for centos7 - if: ${{ matrix.os == 'centos7' }} - uses: actions/checkout@v3 - - - name: checkout for rhel8 - if: ${{ matrix.os == 'rhel8' }} - uses: actions/checkout@v4 - - - name: install dependencies - run: | + - uses: actions/checkout@v6 + - run: | yum install -y epel-release yum install -y make gcc-c++ openssl-devel utf8proc-devel - - - name: make osptk - run: | + - run: | cd $GITHUB_WORKSPACE/src make build + - uses: actions/upload-artifact@v7 + with: + name: osptoolkit + path: | + ${{ github.workspace }}/lib/libosptk.a + if-no-files-found: error - - name: make test_app - run: | - cd $GITHUB_WORKSPACE/test - make linux + package: + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-java@v5 + with: + java-version: "21" + distribution: "corretto" + cache: "maven" + server-id: github + - uses: actions/download-artifact@v8 + with: + name: osptoolkit + - run: | + mv libosptk.a lib + mvn -B install diff --git a/.github/workflows/release-package.yml b/.github/workflows/release-package.yml new file mode 100644 index 0000000..6557780 --- /dev/null +++ b/.github/workflows/release-package.yml @@ -0,0 +1,49 @@ +name: C/C++ CI and Maven Deploy + +on: + release: + types: [created] + +jobs: + build: + runs-on: ubuntu-latest + container: oraclelinux:8 + permissions: + contents: read + steps: + - uses: actions/checkout@v6 + - run: | + yum install -y epel-release + yum install -y make gcc-c++ openssl-devel utf8proc-devel + - run: | + cd $GITHUB_WORKSPACE/src + make build + - uses: actions/upload-artifact@v7 + with: + name: osptoolkit + path: | + ${{ github.workspace }}/lib/libosptk.a + if-no-files-found: error + + package: + needs: build + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-java@v5 + with: + java-version: "21" + distribution: "corretto" + cache: "maven" + server-id: github + - uses: actions/download-artifact@v8 + with: + name: osptoolkit + - run: | + mv libosptk.a lib + mvn -B deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8cc90d5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,91 @@ +# For Maven + +target/ +pom.xml.tag +pom.xml.releaseBackup +pom.xml.versionsBackup +pom.xml.next +release.properties +dependency-reduced-pom.xml +buildNumber.properties +.mvn/timing.properties +# https://maven.apache.org/wrapper/#usage-without-binary-jar +.mvn/wrapper/maven-wrapper.jar + +# Eclipse m2e generated files +# Eclipse Core +.project +# JDT-specific (Eclipse Java Development Tools) +.classpath + +# For C++ + +# Prerequisites +*.d + +# Compiled Object files +*.slo +*.lo +*.o +*.obj + +# Precompiled Headers +*.gch +*.pch + +# Linker files +*.ilk + +# Debugger Files +*.pdb + +# Compiled Dynamic libraries +*.so +*.dylib +*.dll +*.so.* + + +# Fortran module files +*.mod +*.smod + +# Compiled Static libraries +*.lai +*.la +*.a +*.lib + +# Executables +*.exe +*.out +*.app + +# Build directories +build/ +Build/ +build-*/ + +# CMake generated files +CMakeFiles/ +CMakeCache.txt +cmake_install.cmake +Makefile +install_manifest.txt +compile_commands.json + +# Temporary files +*.tmp +*.log +*.bak +*.swp + +# vcpkg +vcpkg_installed/ + +# debug information files +*.dwo + +# test output & cache +Testing/ +.cache/ \ No newline at end of file diff --git a/RELNOTES.txt b/RELNOTES.txt index 0b0e9da..058cb27 100644 --- a/RELNOTES.txt +++ b/RELNOTES.txt @@ -818,3 +818,5 @@ Version 4.31.0 - 2025-04-25 Version 4.32.0 - 2025-05-22 * Updated for STIRv2. +Version 4.33.0 - 2026-03-11 +* Updated to use GitHub Packages. diff --git a/include/osp/osplibversion.h b/include/osp/osplibversion.h index 368c194..85abcec 100644 --- a/include/osp/osplibversion.h +++ b/include/osp/osplibversion.h @@ -20,7 +20,7 @@ #define _OSPLIBVERSION_H #define OSP_CLIENT_TOOLKIT_VERSION_MAJOR 4 -#define OSP_CLIENT_TOOLKIT_VERSION_MINOR 32 +#define OSP_CLIENT_TOOLKIT_VERSION_MINOR 33 #define OSP_CLIENT_TOOLKIT_VERSION_BUGFIX 0 #endif /* _OSPLIBVERSION_H */ diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..de3e164 --- /dev/null +++ b/pom.xml @@ -0,0 +1,133 @@ + + + + + 4.0.0 + + com.transnexus.c + osptoolkit + ${revision}+${profile.id} + pom + + + OSPToolkit + https://github.com/TransNexus/osptoolkit + + + github + GitHub Apache Maven Packages + https://maven.pkg.github.com/TransNexus/osptoolkit + + + + + + UTF-8 + 21 + 4.33.0 + + + + + + + maven-clean-plugin + 3.5.0 + + + maven-resources-plugin + 3.5.0 + + + maven-compiler-plugin + 3.15.0 + + + maven-surefire-plugin + 3.5.5 + + + maven-jar-plugin + 3.5.0 + + + maven-install-plugin + 3.1.4 + + + maven-deploy-plugin + 3.1.4 + + + maven-site-plugin + 3.21.0 + + + maven-project-info-reports-plugin + 3.9.0 + + + org.apache.maven.plugins + maven-help-plugin + 3.5.1 + + + maven-assembly-plugin + 3.8.0 + + false + + + distribute + + tar.gz + + + + ${project.basedir}/RELNOTES.txt + / + + + + + + ${project.basedir}/include + /include + + + + ${project.basedir}/lib + /lib + + + + + + + + build-package + package + + single + + + + + + + + + + + rhel8 + + rhel8 + + + true + + + + \ No newline at end of file