diff options
Diffstat (limited to 'src/pmdk/.github')
-rw-r--r-- | src/pmdk/.github/ISSUE_TEMPLATE.md | 28 | ||||
-rw-r--r-- | src/pmdk/.github/ISSUE_TEMPLATE/bug_report.md | 49 | ||||
-rw-r--r-- | src/pmdk/.github/ISSUE_TEMPLATE/feature.md | 26 | ||||
-rw-r--r-- | src/pmdk/.github/ISSUE_TEMPLATE/question.md | 15 | ||||
-rw-r--r-- | src/pmdk/.github/workflows/coverity.yml | 41 | ||||
-rw-r--r-- | src/pmdk/.github/workflows/gha.yml | 155 |
6 files changed, 314 insertions, 0 deletions
diff --git a/src/pmdk/.github/ISSUE_TEMPLATE.md b/src/pmdk/.github/ISSUE_TEMPLATE.md new file mode 100644 index 000000000..ecf4d6168 --- /dev/null +++ b/src/pmdk/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,28 @@ +# GENERAL ISSUE: <!-- fill the title of regular issue --> + +## Bug Report + +- PMDK package version(s): <!-- fill this out --> +- OS(es) version(s): <!-- fill this out --> +- ndctl version(s): <!-- fill this out --> +- kernel version(s): <!-- fill this out --> +- compiler, libraries, packaging and other related tools version(s): <!-- fill this out --> +<!-- fill in also other useful environment data --> + +## Describe the issue: + +<!-- fill this out --> + +## Actual behavior: + +<!-- fill this out --> + +## Expected behavior: + +<!-- fill this out --> + +## Additional information about Priority and Help Requested: + +Are you willing to submit a pull request with a proposed change? (Yes, No) <!-- check one if possible --> + +Requested priority: (Showstopper, High, Medium, Low) <!-- check one if possible --> diff --git a/src/pmdk/.github/ISSUE_TEMPLATE/bug_report.md b/src/pmdk/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..528efcafa --- /dev/null +++ b/src/pmdk/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,49 @@ +--- +name: Bug report +about: Did you find a bug in PMDK? Please let us know. +labels: "Type: Bug" +--- +<!-- +Before creating new issue, ensure that similar issue wasn't already created + * Search: https://github.com/pmem/pmdk/issues + +Note that if you do not provide enough information to reproduce the issue, we may not be able to take action on your report. +Remember this is just a minimal template. You can extend it with data you think may be useful. +--> + +# ISSUE: <!-- fill the title of issue --> + +## Environment Information + +- PMDK package version(s): <!-- fill this out --> +- OS(es) version(s): <!-- fill this out --> +- ndctl version(s): <!-- fill this out --> +- kernel version(s): <!-- fill this out --> +- compiler, libraries, packaging and other related tools version(s): <!-- fill this out --> +<!-- fill in also other useful environment data --> + +## Please provide a reproduction of the bug: + +<!-- fill this out --> + +## How often bug is revealed: (always, often, rare): <!-- check one if possible --> + +<!-- describe special circumstances in section above --> + +## Actual behavior: + +<!-- fill this out --> + +## Expected behavior: + +<!-- fill this out --> + +## Details + +<!-- fill this out --> + +## Additional information about Priority and Help Requested: + +Are you willing to submit a pull request with a proposed change? (Yes, No) <!-- check one if possible --> + +Requested priority: (Showstopper, High, Medium, Low) <!-- check one if possible --> diff --git a/src/pmdk/.github/ISSUE_TEMPLATE/feature.md b/src/pmdk/.github/ISSUE_TEMPLATE/feature.md new file mode 100644 index 000000000..12d6e406b --- /dev/null +++ b/src/pmdk/.github/ISSUE_TEMPLATE/feature.md @@ -0,0 +1,26 @@ +--- +name: Feature +about: Feature your request +labels: "Type: Feature" +--- +# FEAT: <!-- fill the title of feature --> + +## Rationale + +<!-- fill this out --> + +## Description + +<!-- fill this out --> + +## API Changes + +<!-- fill this out --> + +## Implementation details + +<!-- fill this out if possible --> + +## Meta + +<!-- fill this out --> diff --git a/src/pmdk/.github/ISSUE_TEMPLATE/question.md b/src/pmdk/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 000000000..3e4e452f9 --- /dev/null +++ b/src/pmdk/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,15 @@ +--- +name: Question +about: Do you have question regarding PMDK? Don't hesitate to ask. +labels: "Type: Question" +--- +# QUESTION: <!-- fill the title of question --> + +## Details + +<!-- fill this out --> + +<!-- +For questions and other non-bugs, you could use http://groups.google.com/group/pmem +You could also chat with members of the PMDK team real-time on the #pmem IRC channel on OFTC +--> diff --git a/src/pmdk/.github/workflows/coverity.yml b/src/pmdk/.github/workflows/coverity.yml new file mode 100644 index 000000000..f69783b93 --- /dev/null +++ b/src/pmdk/.github/workflows/coverity.yml @@ -0,0 +1,41 @@ + +name: Coverity + +on: + schedule: + # run this job at 00:00 UTC every day + - cron: '0 0 * * *' + +env: + GITHUB_REPO: pmem/pmdk + DOCKERHUB_REPO: pmem/pmdk + +jobs: + linux: + name: Linux + runs-on: ubuntu-latest + env: + COVERITY_SCAN_NOTIFICATION_EMAIL: ${{ secrets.COVERITY_SCAN_NOTIFICATION_EMAIL }} + COVERITY_SCAN_TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }} + HOST_WORKDIR: /home/runner/work/pmdk/pmdk + WORKDIR: utils/docker + PMDK_CC: gcc + PMDK_CXX: g++ + MAKE_PKG: 0 + REMOTE_TESTS: 1 + VALGRIND: 1 + strategy: + matrix: + CONFIG: ["COVERITY=1 OS=ubuntu OS_VER=19.10"] + steps: + - name: Print out the current date and time + run: date + + - name: Clone the git repo + uses: actions/checkout@v2 + + - name: Pull or rebuild the image + run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh + + - name: Run the build + run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build-CI.sh diff --git a/src/pmdk/.github/workflows/gha.yml b/src/pmdk/.github/workflows/gha.yml new file mode 100644 index 000000000..402d4f878 --- /dev/null +++ b/src/pmdk/.github/workflows/gha.yml @@ -0,0 +1,155 @@ + +name: PMDK +on: [push, pull_request] + +env: + GITHUB_REPO: pmem/pmdk + DOCKERHUB_REPO: pmem/pmdk + +jobs: + linux: + name: Linux + runs-on: ubuntu-latest + env: + DOCKERHUB_USER: ${{ secrets.DOCKERHUB_USER }} + DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} + DOC_UPDATE_GITHUB_TOKEN: ${{ secrets.DOC_UPDATE_GITHUB_TOKEN }} + HOST_WORKDIR: /home/runner/work/pmdk/pmdk + WORKDIR: utils/docker + PMDK_CC: gcc + PMDK_CXX: g++ + MAKE_PKG: 0 + REMOTE_TESTS: 1 + VALGRIND: 1 + SRC_CHECKERS: 0 + strategy: + matrix: + CONFIG: ["N=1 OS=ubuntu OS_VER=19.10 FAULT_INJECTION=1 TEST_BUILD=debug", + "N=2 OS=ubuntu OS_VER=19.10 FAULT_INJECTION=1 TEST_BUILD=nondebug UBSAN=1", + "N=3 OS=ubuntu OS_VER=19.10 PMDK_CC=clang PMDK_CXX=clang++ TEST_BUILD=debug SRC_CHECKERS=1", + "N=4 OS=ubuntu OS_VER=19.10 PMDK_CC=clang PMDK_CXX=clang++ TEST_BUILD=nondebug", + "N=5 OS=fedora OS_VER=31 PMDK_CC=clang PMDK_CXX=clang++ TEST_BUILD=debug", + "N=6 OS=fedora OS_VER=31 PMDK_CC=clang PMDK_CXX=clang++ TEST_BUILD=nondebug AUTO_DOC_UPDATE=1", + "N=7 OS=fedora OS_VER=31 MAKE_PKG=1 EXPERIMENTAL=y REMOTE_TESTS=0 VALGRIND=0 PUSH_IMAGE=1", + "N=8 OS=ubuntu OS_VER=19.10 MAKE_PKG=1 EXPERIMENTAL=y REMOTE_TESTS=0 VALGRIND=0 NDCTL_ENABLE=n PUSH_IMAGE=1", + "N=9 OS=ubuntu OS_VER=19.10 MAKE_PKG=1 EXPERIMENTAL=y REMOTE_TESTS=0 VALGRIND=0 NDCTL_ENABLE=n PMDK_CC=clang PMDK_CXX=clang++", + "N=10 OS=ubuntu OS_VER=19.10 COVERAGE=1 FAULT_INJECTION=1 TEST_BUILD=debug"] + steps: + - name: Clone the git repo + uses: actions/checkout@v2 + with: + fetch-depth: 50 + + - name: Pull or rebuild the image + run: cd $WORKDIR && ${{ matrix.CONFIG }} ./pull-or-rebuild-image.sh + + - name: Run the build + run: cd $WORKDIR && ${{ matrix.CONFIG }} ./build-CI.sh + + - name: Push the image + run: cd $WORKDIR && source ./set-vars.sh && ${{ matrix.CONFIG }} /bin/bash -c "if [[ -f ${CI_FILE_PUSH_IMAGE_TO_REPO} ]]; then images/push-image.sh; fi" + + windows: + name: Windows + runs-on: windows-latest + env: + platform: x64 + solutionname: PMDK.sln + ex_solutionname: Examples.sln + msbuild: "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Enterprise\\MSBuild\\Current\\Bin" + # Platform Toolset for Visual Studio 2019 + platform_toolset: "v142" + perl: "C:\\Strawberry\\perl\\bin" + strategy: + matrix: + CONFIG: [Debug, Release] + steps: + - name: Update Path + run: | + echo "::add-path::$Env:msbuild" + echo "::add-path::$Env:perl" + + - name: Clone the git repo + uses: actions/checkout@v2 + + - name: Unshallow it + run: git fetch --prune --unshallow + + - name: Various debug checks (cstyle, whitespace etc.) + run: | + if ("${{ matrix.CONFIG }}" -eq "Release") + { + Install-Module PsScriptAnalyzer -Force + utils/CSTYLE.ps1 + if ($LASTEXITCODE -ne 0) { + exit 1 + } + utils/CHECK_WHITESPACE.ps1 + if ($LASTEXITCODE -ne 0) { + exit 1 + } + utils/ps_analyze.ps1 + if ($LASTEXITCODE -ne 0) { + exit 1 + } + perl utils/sort_solution check + if ($LASTEXITCODE -ne 0) { + exit 1 + } + ./utils/check_sdk_version.py -d . + if ($LASTEXITCODE -ne 0) { + exit 1 + } + } + + - name: Build + run: | + msbuild src\$Env:solutionname -property:Configuration=${{ matrix.CONFIG }},PlatformToolset=$Env:platform_toolset -m -v:m + msbuild src\examples\$Env:ex_solutionname -property:Configuration=${{ matrix.CONFIG }},PlatformToolset=$Env:platform_toolset -m -v:m + + - name: Create ZIP archive + run: utils/CREATE-ZIP.ps1 -b ${{ matrix.CONFIG }} + + - name: Run tests + shell: powershell + run: | + if ($true) { + cd src\test + echo "`$Env:NON_PMEM_FS_DIR = `"C:\temp`"" >> testconfig.ps1 + echo "`$Env:PMEM_FS_DIR = `"C:\temp`"" >> testconfig.ps1 + echo "`$Env:PMEM_FS_DIR_FORCE_PMEM = `"1`"" >> testconfig.ps1 + echo "`$Env:PMDK_NO_ABORT_MSG = `"1`"" >> testconfig.ps1 + echo "`$Env:TM = `"1`"" >> testconfig.ps1 + write-output "config = { + 'unittest_log_level': 1, + 'cacheline_fs_dir': 'C:\\temp', + 'force_cacheline': True, + 'page_fs_dir': 'C:\\temp', + 'force_page': False, + 'byte_fs_dir': 'C:\\temp', + 'force_byte': True, + 'tm': True, + 'test_type': 'check', + 'granularity': 'all', + 'fs_dir_force_pmem': 1, + 'keep_going': False, + 'timeout': '4m', + 'build': 'debug', + 'force_enable': None, + 'fail_on_skip': False, + 'enable_admin_tests': False, + }" | out-file "testconfig.py" -encoding utf8 + + if ("${{ matrix.CONFIG }}" -eq "Debug") { + ./RUNTESTS.ps1 -b debug -o 4m + if ($?) { + python ./RUNTESTS.py -b debug + } + } + if ("${{ matrix.CONFIG }}" -eq "Release") { + ./RUNTESTS.ps1 -b nondebug -o 4m + if ($?) { + python ./RUNTESTS.py -b release + } + } + } |