6 Commits

Author SHA1 Message Date
Christian Tosta
830ac413d3 Merge pull request #4 from ekaaty/ci-cd
Merge CI-CD Changes
2025-07-15 05:14:19 -03:00
Christian Tosta
2503ccb99d Remove rpm-build workflows 2025-07-15 05:07:53 -03:00
Christian Tosta
026ee513c1 Updated README file 2025-07-15 04:38:47 -03:00
Christian Tosta
bc93d34d16 [CI-CD] Updated workflows 2025-07-15 04:30:25 -03:00
Christian Tosta
7b75def10f Fix RPM changelog 2025-07-15 04:30:25 -03:00
Christian Tosta
3377b66eb0 Fix documentation path 2025-07-15 04:30:13 -03:00
7 changed files with 29 additions and 93 deletions

View File

@@ -3,7 +3,7 @@
SHELL := bash SHELL := bash
source: source:
dnf -y install cmake gcc gcc-c++ dnf -y install cmake gcc gcc-c++ openssl
cmake --fresh -DBUILD_RPMS=ON -B build -S . cmake --fresh -DBUILD_RPMS=ON -B build -S .
cmake --build build --target srpm cmake --build build --target srpm

View File

@@ -8,10 +8,6 @@ on:
jobs: jobs:
release-ci: release-ci:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs:
version: ${{ steps.get_metadata.outputs.version }}
tag: ${{ steps.get_metadata.outputs.tag }}
to_release: ${{ steps.newtag.outputs.to_release }}
steps: steps:
- name: Local checkout - name: Local checkout
@@ -20,15 +16,15 @@ jobs:
- name: Install CI dependencies - name: Install CI dependencies
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get -y -qq install cmake g++ gcc sudo apt-get -y -qq install cmake openssl g++ gcc
- name: Get latest package metadata - name: Get latest package metadata
id: get_metadata id: get_metadata
run: | run: |
cmake --fresh -B build -S . cmake --fresh -B build -S .
echo "tag=v$(cat build/version)" >> $GITHUB_OUTPUT echo "tag=v$(cat build/version)" >> $GITHUB_OUTPUT
echo "version=$(cat build/version)" >> $GITHUB_OUTPUT echo "hash=$(sha256sum build/hash | sed 's/\s.*//g')" >> $GITHUB_OUTPUT
- name: Check if package version has corresponding git tag - name: Check if package version has corresponding git tag
id: tagged id: tagged
shell: bash shell: bash
@@ -43,16 +39,17 @@ jobs:
id: newtag id: newtag
if: steps.tagged.outputs.tagged == 0 if: steps.tagged.outputs.tagged == 0
run: | run: |
git tag ${{ steps.get_metadata.outputs.tag }} \ git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git tag -a ${{ steps.get_metadata.outputs.tag }} \
-m "New cert chain was released" \
--trailer "SHA256:${{ steps.get_metadata.outputs.hash }}" \
&& echo to_release=1 >> $GITHUB_OUTPUT \ && echo to_release=1 >> $GITHUB_OUTPUT \
&& git push origin ${{ steps.get_metadata.outputs.tag }} \ && git push origin ${{ steps.get_metadata.outputs.tag }} \
|| exit 0 || exit 0
build-fedora: - name: Create and publish GitHub release
needs: release-ci if: steps.newtag.outputs.to_release == 1
uses: ./.github/workflows/fedora.yml uses: softprops/action-gh-release@v2
with: with:
containers: "['fedora:latest', 'fedora:41']" tag_name: ${{ steps.get_metadata.outputs.tag }}
version: ${{ needs.release-ci.outputs.version }}
to_release: ${{ needs.release-ci.outputs.to_release }}
tag: ${{ needs.release-ci.outputs.tag }}

View File

@@ -1,70 +0,0 @@
on:
workflow_call:
inputs:
containers:
default: "['fedora:latest']"
required: false
type: string
tag:
required: true
type: string
to_release:
default: "0"
required: false
type: string
version:
required: true
type: string
defaults:
run:
shell: bash
jobs:
build:
strategy:
max-parallel: 2
matrix:
image: ${{ fromJson(inputs.containers) }}
runs-on: ubuntu-latest
container: ${{ matrix.image }}
steps:
- name: Prepare - local checkout
uses: actions/checkout@v4
- name: Prepare - install build dependencies
run: |
dnf -y install \
cmake \
gcc \
gcc-c++ \
git \
openssl \
rpm-build \
rpmdevtools \
tar
- name: Prepare - setup RPM build tree
run: |
rpmdev-setuptree
- name: Prepare - configure the source
run: |
cmake -B $(pwd)/build -S $(pwd)
- name: Build - create source tarball and SRPM package
run: |
cmake --build $(pwd)/build --target srpm
- name: Build - create RPM package
run: |
cmake --build $(pwd)/build --target rpms
- name: Publish - create GitHub release
uses: softprops/action-gh-release@v2
if: inputs.to_release == 1
with:
tag_name: ${{ inputs.tag }}
files: |
dist/*.rpm

View File

@@ -132,7 +132,7 @@ install(
${CMAKE_INSTALL_PREFIX}/${CACERT_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX}/${CACERT_INSTALL_DIR}
) )
set(DOCS_INSTALL_DIR "share/doc/${PROJECT}") set(DOCS_INSTALL_DIR "share/doc/${PROJECT_NAME}")
install( install(
FILES FILES
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE

View File

@@ -61,6 +61,14 @@ configure_file(
) )
if(BUILD_RPMS) if(BUILD_RPMS)
execute_process(
COMMAND bash -c
"LANG=C DATE=$(date +'%a %b %d %Y'); \
echo \"* $DATE %{packager} - ${PROJECT_VERSION}-1%{?dist}\"; \
echo \"- This is an automatically built package (See our Git URL for more info).\"; \
"
OUTPUT_VARIABLE CPACK_RPM_CHANGELOG
)
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/packaging/pkg.spec.in" CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/packaging/pkg.spec.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.spec" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.spec"
@ONLY @ONLY

View File

@@ -20,7 +20,7 @@ chain, supervise and audit the processes.
* [Certification Practice Statement Root Certification Authority of Brazil]( * [Certification Practice Statement Root Certification Authority of Brazil](
https://acraiz.icpbrasil.gov.br/cpsrootca.pdf https://acraiz.icpbrasil.gov.br/cpsrootca.pdf
) )
* [Política de Segurança da AC-Raiz]( * [Security Policy of Root-CA (in Portuguese)](
https://acraiz.icpbrasil.gov.br/PSacraiz.pdf https://acraiz.icpbrasil.gov.br/PSacraiz.pdf
) )

View File

@@ -1,5 +1,6 @@
%global debug_package %{nil} %global debug_package %{nil}
%global source_date_epoch_from_changelog 0 %global source_date_epoch_from_changelog 0
%global packager Christian Tosta <7252968+christiantosta@users.noreply.github.com>
%define __openssl %{_bindir}/openssl %define __openssl %{_bindir}/openssl
@@ -43,9 +44,9 @@ chain, supervise and audit the processes.
%files %files
%doc %{_datadir}/doc/*.pdf %doc %{_datadir}/doc/%{name}/*.pdf
%doc %{_datadir}/doc/README.md %doc %{_datadir}/doc/%{name}/README.md
%license %{_datadir}/doc/LICENSE %license %{_datadir}/doc/%{name}/LICENSE
%{_datadir}/pki/ca-trust-source/anchors/isrg-root-x2.crt %{_datadir}/pki/ca-trust-source/anchors/isrg-root-x2.crt
%{_datadir}/pki/ca-trust-source/anchors/lets-encrypt-ca-bundle.crt %{_datadir}/pki/ca-trust-source/anchors/lets-encrypt-ca-bundle.crt
%{_datadir}/pki/ca-trust-source/anchors/icp-brasil-ca-bundle.crt %{_datadir}/pki/ca-trust-source/anchors/icp-brasil-ca-bundle.crt
@@ -55,4 +56,4 @@ chain, supervise and audit the processes.
%postun -p %{_bindir}/update-ca-trust %postun -p %{_bindir}/update-ca-trust
%changelog %changelog
%autochangelog @CPACK_RPM_CHANGELOG@