diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml
index 1214b42..18670e9 100644
--- a/.github/workflows/build_all.yml
+++ b/.github/workflows/build_all.yml
@@ -24,7 +24,7 @@ jobs:
- name: Create Build Dir
run: mkdir build
- name: Clone
- run: git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
+ run: git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
- name: Build VCPKG
run: cd vcpkg && bootstrap-vcpkg.bat
shell: cmd
@@ -71,7 +71,7 @@ jobs:
- name: Create Build Dir
run: mkdir build
- name: Clone
- run: git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
+ run: git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
- name: Build VCPKG
run: cd vcpkg && ./bootstrap-vcpkg.sh
shell: bash
diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml
new file mode 100644
index 0000000..7da1632
--- /dev/null
+++ b/.github/workflows/changelog.yml
@@ -0,0 +1,20 @@
+name: Changelog Generator
+
+on:
+ pull_request:
+ branches: [ master ]
+ workflow_dispatch:
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ fetch-depth: 0
+ - run: docker run -v $PWD:/workdir quay.io/git-chglog/git-chglog --next-tag vNext --output CHANGELOG-new.md vNext..
+ - name: GitHub Upload Release Artifacts
+ uses: actions/upload-artifact@v2
+ with:
+ name: CHANGELOG-new.md
+ path: |
+ ./CHANGELOG-new.md
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6855388..90e95f0 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -21,7 +21,7 @@ jobs:
- name: Create Build Dir
run: mkdir build
- name: Clone
- run: git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
+ run: git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
- name: Build VCPKG
run: cd vcpkg && bootstrap-vcpkg.bat
shell: cmd
@@ -54,7 +54,7 @@ jobs:
- name: Create Build Dir
run: mkdir build
- name: Clone
- run: git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
+ run: git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
- name: Build VCPKG
run: cd vcpkg && ./bootstrap-vcpkg.sh
shell: bash
diff --git a/Build.md b/Build.md
index be47cb0..08df889 100644
--- a/Build.md
+++ b/Build.md
@@ -25,8 +25,9 @@ sudo apt install git cmake build-essential curl zip unzip tar pkg-config
Open a Terminal window.
```
-git clone -b 2020.11-1 https://github.com/microsoft/vcpkg.git
+git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
+git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
./bootstrap-vcpkg.sh
./vcpkg install cpprestsdk[websockets]
```
@@ -68,8 +69,9 @@ Steps below are for Windows 10 and Visual Studio 2019 Professional.
Open an x64 Native Tools Command Prompt for Visual Studio 2019.
```
-git clone -b 2020.11-1 https://github.com/microsoft/vcpkg.git
+git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
+git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
bootstrap-vcpkg.bat
vcpkg install cpprestsdk[websockets]:x64-windows-static
```
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 618f3c2..761c563 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,8 +7,6 @@
### Ci
- update scanning
-- remove Jenkins chron
-- **changelog:** add automation for changelog generation
### Docs
- **readme:** wording
@@ -25,9 +23,23 @@
### Fix
- klockwork reported success / failure check fix
-- update examples text and version
- **spelling:** lan inteface -> lan interface in amtinfo
+
+## [v1.2.2] - 2021-06-22
+### Ci
+- remove Jenkins chron
+- **changelog:** add automation for changelog generation
+
+### Fix
+- update examples text and version
+
+
+## [v1.2.1] - 2021-05-06
+
+### Fix
+**docker:** add missing ca-certs
+
## v1.2.0
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 05d3981..94c76db 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required (VERSION 3.1)
-project (rpc VERSION 1.2.0)
+project (rpc VERSION 2.0.0)
set (CMAKE_CXX_STANDARD 11)
diff --git a/CentOS7.md b/CentOS7.md
index 79b8898..82acf9c 100644
--- a/CentOS7.md
+++ b/CentOS7.md
@@ -50,8 +50,9 @@ export PATH=/home/user/Downloads/git:$PATH
Using a Terminal window with the PATH and devtoolset enabled per the Dependencies.
```
-git clone -b 2020.11-1 https://github.com/microsoft/vcpkg.git
+git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
+git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
./bootstrap-vcpkg.sh
./vcpkg install cpprestsdk[websockets]
```
diff --git a/CentOS8.md b/CentOS8.md
index 10d97f2..6f53df0 100644
--- a/CentOS8.md
+++ b/CentOS8.md
@@ -28,8 +28,9 @@ sudo yum install cmake
Using a Terminal window with the PATH and devtoolset enabled per the Dependencies.
```
-git clone -b 2020.11-1 https://github.com/microsoft/vcpkg.git
+git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
+git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
./bootstrap-vcpkg.sh
./vcpkg install cpprestsdk[websockets]
```
diff --git a/Dockerfile b/Dockerfile
index f9f37fc..28e0946 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -15,7 +15,7 @@ RUN \
RUN git clone https://github.com/open-amt-cloud-toolkit/rpc.git
WORKDIR /rpc
RUN mkdir -p build
-RUN git clone --branch 2020.11-1 https://github.com/microsoft/vcpkg.git
+RUN git clone https://github.com/microsoft/vcpkg.git && cd vcpkg && git checkout 772d435ba18bf2f342458e0187ab7b48b84fe3f0
RUN cd vcpkg && ./bootstrap-vcpkg.sh
RUN ./vcpkg/vcpkg install cpprestsdk[websockets]
diff --git a/Jenkinsfile b/Jenkinsfile
index af5fae5..cdfcec2 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -1,62 +1,33 @@
pipeline {
- agent none
- triggers {cron '@daily'}
+ agent {
+ label 'docker-amt'
+ }
options {
buildDiscarder(logRotator(numToKeepStr: '5', daysToKeepStr: '30'))
timestamps()
timeout(unit: 'HOURS', time: 2)
}
+
stages {
- stage ('Parallel') {
- parallel {
- stage ('Linux') {
- agent { label 'docker-amt' }
- stages {
- stage ('Cloning Repository') {
- steps {
- script {
- scmCheckout {
- clean = true
- }
- }
- }
- }
- }
- }
- stage ('Windows') {
- agent { label 'openamt-win' }
- stages {
- stage ('Cloning Repository') {
- steps {
- script {
- scmCheckout {
- clean = true
- }
- }
- }
- }
- }
- }
- }
- }
- stage ('Static Code Scan - Protex') {
- agent { label 'docker-amt' }
+ stage ('Cloning Repository') {
steps {
script {
- staticCodeScan {
- // generic
- scanners = ['protex']
- scannerType = ['c','c++']
-
- protexProjectName = 'OpenAMT - RPC'
- // internal, do not change
- protexBuildName = 'rrs-generic-protex-build'
+ scmCheckout {
+ clean = true
}
}
}
}
-
+ stage('Static Code Scan - Protex') {
+ environment{
+ PROJECT_NAME = 'OpenAMT - RPC'
+ SCANNERS = 'protex'
+ }
+ steps {
+ rbheStaticCodeScan()
+ }
+ }
stage ('Parallel Builds') {
parallel {
stage ('Linux') {
@@ -72,6 +43,7 @@ pipeline {
steps {
sh './scripts/jenkins-pre-build.sh'
sh './scripts/jenkins-build.sh'
+ stash includes: 'build/rpc', name: 'linux-rpc-app'
}
}
stage ('Archive') {
@@ -79,7 +51,6 @@ pipeline {
archiveArtifacts allowEmptyArchive: true, artifacts: 'build/rpc', caseSensitive: false, onlyIfSuccessful: true
}
}
-
}
}
stage ('Windows') {
@@ -90,7 +61,7 @@ pipeline {
bat 'scripts\\jenkins-pre-build.cmd'
bat 'scripts\\jenkins-build.cmd'
// prepare stash for the binary scan
- stash includes: "**/*.exe", name: 'rpc-app'
+ stash includes: '**/*.exe', name: 'win-rpc-app'
}
}
stage ('Archive') {
@@ -102,71 +73,82 @@ pipeline {
}
}
}
- stage ('Parallel Scans') {
- parallel {
- stage ('Static Code Scan Linux') {
- agent { label 'docker-amt' }
- steps {
- script {
- staticCodeScan {
- // generic
- scanners = ['bdba','klocwork']
- scannerType = 'c++'
- protecodeGroup = '25'
- protecodeScanName = 'rpc-zip'
- protecodeDirectory = './build/rpc'
-
- klockworkPreBuildScript = './scripts/jenkins-pre-build.sh'
- klockworkBuildCommand = './scripts/jenkins-build.sh'
- klockworkProjectName = 'Panther Point Creek'
- klockworkIgnoreCompileErrors = true
- }
- }
- }
+ stage('Prep Binary') {
+ steps {
+ sh 'mkdir -p ./bin'
+ dir('./bin') {
+ unstash 'linux-rpc-app'
+ unstash 'win-rpc-app'
}
- stage ('Static Code Scan Windows') {
- stages {
- stage ('Static Code Scan Windows - Klockwork') {
- agent { label 'openamt-win' }
- steps {
- script {
- staticCodeScan {
- // generic
- scanners = ['klocwork']
- scannerType = 'c++'
-
- klockworkPreBuildScript = 'scripts\\jenkins-pre-build.cmd'
- klockworkBuildCommand = 'scripts\\jenkins-build.cmd'
- klockworkProjectName = 'Panther Point Creek'
- klockworkIgnoreCompileErrors = true
- }
- }
- }
- }
- stage ('Static Code Scan Windows - BDBA') {
- agent { label 'docker-amt' }
- steps {
- script {
- sh "mkdir -p bdbaScanDir"
- dir("bdbaScanDir") {
- unstash 'rpc-app'
- }
- staticCodeScan {
- // generic
- scanners = ['bdba']
- scannerType = 'c++'
-
- protecodeGroup = '25'
- protecodeScanName = 'rpc-zip'
- protecodeDirectory = 'bdbaScanDir'
- }
- }
- }
+ }
+ }
+ stage('Linux Scans') {
+ environment{
+ PROJECT_NAME = 'OpenAMT - RPC - Linux'
+ SCANNERS = 'bdba,klocwork'
+
+ // protecode details
+ PROTECODE_BIN_DIR = './bin'
+ PROTECODE_INCLUDE_SUB_DIRS = true
+
+ // klocwork details
+ KLOCWORK_SCAN_TYPE = 'c++'
+ KLOCWORK_PRE_BUILD_SCRIPT = './scripts/jenkins-pre-build.sh'
+ KLOCWORK_BUILD_COMMAND = './scripts/jenkins-build.sh'
+ KLOCWORK_IGNORE_COMPILE_ERRORS = true
+
+ // publishArtifacts details
+ PUBLISH_TO_ARTIFACTORY = true
+ }
+ steps {
+ rbheStaticCodeScan()
+ dir('artifacts/Klockwork'){
+ sh 'cp kw_report.html kw_report_linux.html'
+ sh 'cp kw_report.csv kw_report_linux.csv'
+ archiveArtifacts allowEmptyArchive: true, artifacts: 'kw_report_linux.html'
+ archiveArtifacts allowEmptyArchive: true, artifacts: 'kw_report_linux.csv'
+ }
+
+ }
+ }
+ stage('Windows Scans'){
+ agent { label 'openamt-win' }
+ stages{
+ stage ('Windows Scans - klocwork') {
+ environment {
+ PROJECT_NAME = 'OpenAMT - RPC - Windows'
+ SCANNERS = 'klocwork'
+
+ // klocwork details
+ KLOCWORK_SCAN_TYPE = 'c++'
+ KLOCWORK_PRE_BUILD_SCRIPT = 'scripts\\jenkins-pre-build.cmd'
+ KLOCWORK_BUILD_COMMAND = 'scripts\\jenkins-build.cmd'
+ KLOCWORK_IGNORE_COMPILE_ERRORS = true
+
+ // publishArtifacts details
+ PUBLISH_TO_ARTIFACTORY = true
+ }
+ steps {
+ rbheStaticCodeScan()
+ dir('artifacts\\Klockwork'){
+ bat 'copy kw_report.html kw_report_windows.html'
+ bat 'copy kw_report.csv kw_report_windows.csv'
+ stash includes: 'kw_report_windows.*', name: 'win-kwreports'
+ archiveArtifacts allowEmptyArchive: true, artifacts: 'kw_report_windows.html'
+ archiveArtifacts allowEmptyArchive: true, artifacts: 'kw_report_windows.csv'
}
}
}
}
}
+ stage('Publish Artifacts'){
+ steps{
+ dir('artifacts/Klockwork'){
+ unstash 'win-kwreports'
+ }
+ publishArtifacts()
+ }
+ }
}
}
\ No newline at end of file
diff --git a/README.md b/README.md
index 1584590..833848b 100644
--- a/README.md
+++ b/README.md
@@ -4,26 +4,43 @@
The Remote Provisioning Client (RPC) is an application that enables remote capabilities for IntelĀ® AMT, such as as device activation and configuration. To accomplish this, RPC communicates with the Remote Provisioning Server (RPS) to activate and connect the edge device.
+
+
**For detailed documentation** about RPC or other features of the Open AMT Cloud Toolkit, see the [docs](https://open-amt-cloud-toolkit.github.io/docs/).
+
+
## Prerequisites
We leverage GitHub Actions as a means to build RPC automatically leveraging Github's CI/CD Infrastructure. This avoids having to deal with the challenges of getting your build environment just right on your local machine and allows you to get up and running much faster. Read more about GitHub Actions [here](https://github.blog/2019-08-08-github-actions-now-supports-ci-cd/#:~:text=GitHub%20Actions%20is%20an%20API,every%20step%20along%20the%20way.)
-## Build the Remote Provisioning Client (RPC)