Merge pull request from akdev1l/master

ci/cd: add github workflows
This commit is contained in:
dokutan 2021-10-20 14:23:50 +02:00 committed by GitHub
commit 54950c0ee8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 212 additions and 3 deletions

21
.github/workflows/build-cmake.yml vendored Normal file
View file

@ -0,0 +1,21 @@
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
fedora-cmake-build:
runs-on: ubuntu-latest
container: fedora:34
steps:
- uses: actions/checkout@v2
- name: install tools and dependencies
run: |
dnf install -y cmake rpm-build findutils clang-tools-extra 'dnf-command(builddep)'
dnf builddep -y mouse_m908.spec
- name: build mouse_m908 with cmake
run: |
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -Bbuild
cmake --build build

33
.github/workflows/build.yml vendored Normal file
View file

@ -0,0 +1,33 @@
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
fedora-rpm-build:
runs-on: ubuntu-latest
container: fedora:34
steps:
- uses: actions/checkout@v2
- name: install tools and dependencies
run: |
dnf install -y rpm-build findutils clang-tools-extra 'dnf-command(builddep)'
dnf builddep -y mouse_m908.spec
- name: build mouse_m908 rpm package
run: |
make -j4 rpm
centos-rpm-build:
runs-on: ubuntu-latest
container: centos:8
steps:
- uses: actions/checkout@v2
- name: install tools and dependencies
run: |
dnf install -y rpm-build findutils clang-tools-extra 'dnf-command(builddep)' 'dnf-command(config-manager)'
dnf config-manager --set-enabled powertools
dnf builddep -y mouse_m908.spec
- name: build mouse_m908 rpm package
run: |
make -j4 rpm

155
.github/workflows/release.yml vendored Normal file
View file

@ -0,0 +1,155 @@
on:
push:
tags:
- v*
jobs:
create-gh-release:
runs-on: ubuntu-latest
container: fedora:latest
steps:
- name: create release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
draft: false
prerelease: false
- name: put upload_url in artifact
run: |
echo '${{ steps.create_release.outputs.upload_url }}' > release-upload-url
- name: upload artifact
uses: actions/upload-artifact@v2
with:
name: release-upload-url
path: release-upload-url
fedora-release-rpm:
runs-on: ubuntu-latest
container: fedora:34
steps:
- uses: actions/checkout@v2
- name: get version details
run: |
echo "RELEASE_VER=${GITHUB_REF#*/*/v}" >> ${GITHUB_ENV}
echo "DIST_TAG=$(rpm --eval '%dist')" >> ${GITHUB_ENV}
echo "RPM_RELEASE=$(awk '/Release:/{$0 = $2; FS="%"; $0=$0; print $1}' mouse_m908.spec)" >> ${GITHUB_ENV}
- name: set output variables
run: |
echo "RPM_NAME=mouse_m908-${RELEASE_VER}-${RPM_RELEASE}${DIST_TAG}.x86_64.rpm" >> ${GITHUB_ENV}
echo "SRPM_NAME=mouse_m908-${RELEASE_VER}-${RPM_RELEASE}${DIST_TAG}.src.rpm" >> ${GITHUB_ENV}
- name: install tools and dependencies
run: |
dnf install -y rpm-build findutils clang-tools-extra 'dnf-command(builddep)'
dnf builddep -y mouse_m908.spec
- name: build mouse_m908 rpm package
run: |
make -j4 rpm
make -j4 src-rpm
- name: upload rpm package artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.RPM_NAME }}
path: ${{ env.RPM_NAME }}
- name: upload src rpm package artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.SRPM_NAME }}
path: ${{ env.SRPM_NAME }}
- name: download release-upload-url artifact
uses: actions/download-artifact@v2
with:
name: release-upload-url
path: release-upload-url
- name: set upload url environment var
run: |
echo "UPLOAD_URL=$(cat release-upload-url/release-upload-url)" >> ${GITHUB_ENV}
- name: upload rpm package to release page
id: upload-release-rpm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ./${{ env.RPM_NAME }}
asset_name: ${{ env.RPM_NAME }}
asset_content_type: application/octet-stream
- name: upload src rpm package to release page
id: upload-release-srpm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ./${{ env.SRPM_NAME }}
asset_name: ${{ env.SRPM_NAME }}
asset_content_type: application/octet-stream
centos-release-rpm:
runs-on: ubuntu-latest
container: centos:8
steps:
- uses: actions/checkout@v2
- name: get version details
run: |
echo "RELEASE_VER=${GITHUB_REF#*/*/v}" >> ${GITHUB_ENV}
echo "DIST_TAG=$(rpm --eval '%dist')" >> ${GITHUB_ENV}
echo "RPM_RELEASE=$(awk '/Release:/{$0 = $2; FS="%"; $0=$0; print $1}' mouse_m908.spec)" >> ${GITHUB_ENV}
- name: set output variables
run: |
echo "RPM_NAME=mouse_m908-${RELEASE_VER}-${RPM_RELEASE}${DIST_TAG}.x86_64.rpm" >> ${GITHUB_ENV}
echo "SRPM_NAME=mouse_m908-${RELEASE_VER}-${RPM_RELEASE}${DIST_TAG}.src.rpm" >> ${GITHUB_ENV}
- name: install tools and dependencies
run: |
dnf install -y rpm-build findutils clang-tools-extra 'dnf-command(builddep)' 'dnf-command(config-manager)'
dnf config-manager --set-enabled powertools
dnf builddep -y mouse_m908.spec
- name: build mouse_m908 rpm package
run: |
make -j4 rpm
make -j4 src-rpm
- name: upload rpm package artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.RPM_NAME }}
path: ${{ env.RPM_NAME }}
- name: upload src rpm package artifact
uses: actions/upload-artifact@v2
with:
name: ${{ env.SRPM_NAME }}
path: ${{ env.SRPM_NAME }}
- name: download release-upload-url artifact
uses: actions/download-artifact@v2
with:
name: release-upload-url
path: release-upload-url
- name: set upload url environment var
run: |
echo "UPLOAD_URL=$(cat release-upload-url/release-upload-url)" >> ${GITHUB_ENV}
- name: upload rpm package to release page
id: upload-release-rpm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ./${{ env.RPM_NAME }}
asset_name: ${{ env.RPM_NAME }}
asset_content_type: application/octet-stream
- name: upload src rpm package to release page
id: upload-release-srpm
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ env.UPLOAD_URL }}
asset_path: ./${{ env.SRPM_NAME }}
asset_name: ${{ env.SRPM_NAME }}
asset_content_type: application/octet-stream

View file

@ -52,7 +52,7 @@ upgrade: install
# this builds a .rpm for Fedora/RHEL systems
rpm:
rpmbuild --buildroot $(PWD)/rpmbuild/BUILDROOT --define "_topdir $(PWD)/rpmbuild" -bb mouse_m908.spec
+rpmbuild --buildroot $(PWD)/rpmbuild/BUILDROOT --define "_topdir $(PWD)/rpmbuild" -bb mouse_m908.spec
# this builds .src.rpm for Fedora/RHEL systems
src-rpm:

View file

@ -7,12 +7,12 @@
Name: mouse_m908
Version: 3.2
Release: 1
Release: 1%{?dist}
Summary: Control Redragon gaming mice from Linux, BSD and Haiku
License: GPL v3
URL: https://github.com/dokutan/mouse_m908
BuildRequires: gcc-c++ libusb libusb-devel
BuildRequires: gcc-c++ libusb libusb-devel make
Requires: libusb
ExclusiveArch: x86_64