summaryrefslogtreecommitdiffstats
path: root/src/pmdk/.github
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdk/.github')
-rw-r--r--src/pmdk/.github/ISSUE_TEMPLATE.md28
-rw-r--r--src/pmdk/.github/ISSUE_TEMPLATE/bug_report.md49
-rw-r--r--src/pmdk/.github/ISSUE_TEMPLATE/feature.md26
-rw-r--r--src/pmdk/.github/ISSUE_TEMPLATE/question.md15
-rw-r--r--src/pmdk/.github/workflows/coverity.yml41
-rw-r--r--src/pmdk/.github/workflows/gha.yml155
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
+ }
+ }
+ }