Browse Source

Add automaticall rpm package generation for release

Alexey Edelev 4 years ago
parent
commit
4ecfc8e1b2
3 changed files with 36 additions and 6 deletions
  1. 6 0
      .ci/Dockerfile.opensuse_rpm
  2. 29 5
      .github/workflows/tagadd.yml
  3. 1 1
      CMakeLists.txt

+ 6 - 0
.ci/Dockerfile.opensuse_rpm

@@ -0,0 +1,6 @@
+FROM qtprotobuf/opensuse-latest-builtin-qt:latest
+ADD . /sources
+RUN mkdir -p /build && mkdir -p /artifacts
+WORKDIR /build
+RUN PATH=$PATH:/usr/lib64/qt5/bin cmake ../sources -DQT_PROTOBUF_MAKE_TESTS=FALSE -DQT_PROTOBUF_MAKE_EXAMPLES=FALSE -DCMAKE_BUILD_TYPE=Release
+RUN cpack -G RPM ..

+ 29 - 5
.github/workflows/tagadd.yml

@@ -7,21 +7,25 @@ on:
     tags:
       - 'v*'
 jobs:
-  build-deb:
+  build-packages:
     name: Build release packages
     runs-on: ubuntu-latest
     steps:
     - uses: actions/checkout@v2
-    - name: Build the Ubuntu Latest Docker image
+    - name: Build release packages on ubuntu and opensuse latest
       id: build_release
       run: |
-        docker build . --file .ci/Dockerfile.ubuntu_deb --tag ubuntu_debimage:latest
         mkdir artifacts
+        docker build . --file .ci/Dockerfile.ubuntu_deb --tag ubuntu_debimage:latest
         docker run --mount type=bind,source="$(pwd)"/artifacts,target=/artifacts ubuntu_debimage:latest sh -c "mv /build/*.deb /artifacts"
+        docker build . --file .ci/Dockerfile.opensuse_rpm --tag opensuse_rpmimage:latest
+        docker run --mount type=bind,source="$(pwd)"/artifacts,target=/artifacts opensuse_rpmimage:latest sh -c "mv /build/*.rpm /artifacts"
         ls artifacts/*
         cd artifacts
         echo "##[set-output name=libpackage;]$(ls -1 libqtprotobuf_*.deb)"
         echo "##[set-output name=devpackage;]$(ls -1 libqtprotobuf-dev_*.deb)"
+        echo "##[set-output name=devrpmpackage;]$(ls -1 libqtprotobuf-*-devel.rpm)"
+        echo "##[set-output name=librpmpackage;]$(ls -1 libqtprotobuf-*.rpm | grep -v 'devel')"
     - name: Create Release
       id: create_release
       uses: actions/create-release@v1
@@ -32,7 +36,7 @@ jobs:
         release_name: Release ${{ github.ref }}
         draft: false
         prerelease: false
-    - name: Upload release lib package
+    - name: Upload release lib .deb package
       id: upload_lib
       uses: actions/upload-release-asset@v1
       env:
@@ -42,7 +46,7 @@ jobs:
         asset_path: artifacts/${{ steps.build_release.outputs.libpackage }}
         asset_name: ${{ steps.build_release.outputs.libpackage }}
         asset_content_type: application/x-debian-package
-    - name: Upload release dev package
+    - name: Upload release develop .deb package
       id: upload_dev
       uses: actions/upload-release-asset@v1
       env:
@@ -52,3 +56,23 @@ jobs:
         asset_path: artifacts/${{ steps.build_release.outputs.devpackage }}
         asset_name: ${{ steps.build_release.outputs.devpackage }}
         asset_content_type: application/x-debian-package
+    - name: Upload release .rpm package
+      id: upload_rpm_lib
+      uses: actions/upload-release-asset@v1
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      with:
+        upload_url: ${{ steps.create_release.outputs.upload_url }}
+        asset_path: artifacts/${{ steps.build_release.outputs.librpmpackage }}
+        asset_name: ${{ steps.build_release.outputs.librpmpackage }}
+        asset_content_type: application/x-rpm
+    - name: Upload release develop .rpm package
+      id: upload_rpm_dev
+      uses: actions/upload-release-asset@v1
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      with:
+        upload_url: ${{ steps.create_release.outputs.upload_url }}
+        asset_path: artifacts/${{ steps.build_release.outputs.devrpmpackage }}
+        asset_name: ${{ steps.build_release.outputs.devrpmpackage }}
+        asset_content_type: application/x-rpm

+ 1 - 1
CMakeLists.txt

@@ -72,7 +72,7 @@ add_subdirectory("src/protobuf")
 add_subdirectory("src/grpc")
 add_subdirectory("src/generator")
 if(NOT WIN32)#TODO: There are linking issues with windows build of well-known types...
-	add_subdirectory("src/wellknowntypes")
+    add_subdirectory("src/wellknowntypes")
 endif()
 configure_package_config_file(
     "${CMAKE_CURRENT_SOURCE_DIR}/ProjectConfig.cmake.in" "${QT_PROTOBUF_BINARY_DIR}/${PROJECT_NAME}Config.cmake"