feat: add ci build task (#342)

- a ci workflow for build tests
- run pre-commit against all files

Reviewed-on: #342
This commit is contained in:
Ben Vincent 2025-07-08 20:19:36 +10:00
parent be02d3d150
commit 40c57ede59
7 changed files with 34 additions and 10 deletions

View File

@ -0,0 +1,24 @@
name: Build
on:
pull_request:
jobs:
precommit:
runs-on: almalinux-8
container:
image: git.unkin.net/unkin/almalinux9-actionsdind:latest
options: --privileged
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Install requirements
run: |
dnf groupinstall -y "Development Tools" -y
dnf install rubygems ruby-devel gcc make redhat-rpm-config glibc-headers glibc-devel -y
- name: Pre-Commit All Files
run: |
uvx pre-commit run --all-files

View File

@ -8,3 +8,6 @@ Style/Documentation:
Layout/LineLength:
Max: 140
Metrics/BlockNesting:
Max: 4

View File

@ -8,7 +8,6 @@ Facter.add('pve_nodelist') do
conf_file = '/etc/pve/corosync.conf'
node_list = {}
current_node = nil
# rubocop:disable Metrics/BlockNesting
if File.exist?(conf_file)
File.foreach(conf_file) do |line|
@ -28,8 +27,6 @@ Facter.add('pve_nodelist') do
end
end
# rubocop:enable Metrics/BlockNesting
node_list.empty? ? nil : node_list
end
end

View File

@ -90,7 +90,7 @@ class profiles::consul::client (
# cleanup /usr/local/bin/consul which was created by url install method
if $facts['os']['family'] == 'RedHat' {
file {'/usr/local/bin/consul':
ensure => absent,
ensure => absent,
}
}
}

View File

@ -41,7 +41,7 @@ class profiles::ntp::client (
}
} else {
class { 'chrony':
servers => sort($ntpserver_array),
servers => sort($ntpserver_array),
}
}
}

View File

@ -1,8 +1,8 @@
# Class: profiles::puppet::enc
#
# This class manages a Git repository at /opt/puppetlabs/enc. It includes a
# This class manages a Git repository at /opt/puppetlabs/enc. It includes a
# systemd service and timer to keep the repository updated every minute.
# The Git package is installed if not present, and the repository at the given
# The Git package is installed if not present, and the repository at the given
# location will always reflect the state of the remote Git repository.
class profiles::puppet::enc (
String $repo,
@ -11,11 +11,11 @@ class profiles::puppet::enc (
) {
file { '/opt/puppetlabs/bin/enc':
ensure => absent,
ensure => absent,
}
file { '/opt/puppetlabs/bin/puppet-enc':
ensure => absent,
ensure => absent,
}
$_timer = @(EOT)

View File

@ -155,7 +155,7 @@ class profiles::puppet::puppetboard (
# call the nginx selinux class
class { 'profiles::selinux::nginx':
require => Class['Nginx'],
require => Class['Nginx'],
}
}
}