Skip to content

Commit

Permalink
Add GHA workflow to build and test RPMs
Browse files Browse the repository at this point in the history
Skip-PR-comments: true
Run-GHA: true

Required-githooks: true

Signed-off-by: Brian J. Murrell <[email protected]>
  • Loading branch information
brianjmurrell committed Dec 2, 2024
1 parent 7a123c8 commit 3ae71a8
Show file tree
Hide file tree
Showing 4 changed files with 126 additions and 2 deletions.
100 changes: 100 additions & 0 deletions .github/workflows/rpm-build-and-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
name: RPM Build and Test

env:
# TODO: we really need to define a list of supported versions (ideally it's no more than 2)
# build is done on the lowest version and test on the highest with a "sanity test"
# stage done on all versions in the list ecept the highest
EL8_BUILD_VERSION: 8.6
EL8_VERSION: 8.8
EL9_BUILD_VERSION: 9.4
EL9_VERSION: 9.4
LEAP15_VERSION: 15.5
# Which distros to build for
DISTROS: el8 el9 leap15
TEST_TAG: pr
PACKAGING_DIR: .
NAME: argobots

on:
workflow_dispatch:
inputs:
pr-repos:
description: 'Any PR-repos that you want included in this build'
required: false
commit-message:
description: 'Commit message to use rather than the one from git'
required: false
rpm-test-version:
description: 'RPM version to test'
required: false
pull_request:
push:
branches:
- master

concurrency:
group: rpm-build-and-test-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

defaults:
run:
shell: bash --noprofile --norc -ueo pipefail {0}

permissions: {}

jobs:
Variables:
# What a dumb jobs this is
# Needed because of https://github.com/orgs/community/discussions/26671
# Ideally want to be able to use:
# with:
# NAME: ${{ env.NAME }}
# in the Call-RPM-Build job but the above issue prevents it
name: Compute outputs
runs-on: [self-hosted, light]
outputs:
NAME: ${{ env.NAME }}
DISTROS: ${{ env.DISTROS }}
EL8_BUILD_VERSION: ${{ env.EL8_BUILD_VERSION }}
EL9_BUILD_VERSION: ${{ env.EL9_BUILD_VERSION }}
LEAP15_VERSION: ${{ env.LEAP15_VERSION }}
PACKAGING_DIR: ${{ env.PACKAGING_DIR }}
TEST_TAG: ${{ env.TEST_TAG }}
steps:
- name: Echo
if: false
run: echo

Call-RPM-Build:
name: Build RPM
needs: Variables
if: inputs.rpm-test-version == ''
permissions:
statuses: write
uses: daos-stack/actions-lib/.github/workflows/rpm-build.yml@v1
secrets: inherit
with:
NAME: ${{ needs.Variables.outputs.NAME }}
DISTROS: ${{ needs.Variables.outputs.DISTROS }}
EL8_BUILD_VERSION: ${{ needs.Variables.outputs.EL8_BUILD_VERSION }}
EL9_BUILD_VERSION: ${{ needs.Variables.outputs.EL9_BUILD_VERSION }}
LEAP15_VERSION: ${{ needs.Variables.outputs.LEAP15_VERSION }}
PACKAGING_DIR: ${{ needs.Variables.outputs.PACKAGING_DIR}}
# RUN_GHA: true

Call-RPM-Test:
# TODO: investigate how cancelling this can cancel the downstream job
name: Test RPMs with DAOS
needs: [Variables, Call-RPM-Build]
uses: daos-stack/actions-lib/.github/workflows/rpm-test.yml@v1
# it would be better if we could do this in rpm-test.yml but we can't because it causes:
# The nested job 'Test-with-DAOS' is requesting 'issues: write', but is only allowed
# 'issues: none'.
permissions:
issues: write
secrets: inherit
with:
NAME: ${{ needs.Variables.outputs.NAME }}
DISTROS: ${{ needs.Variables.outputs.DISTROS }}
TEST_TAG: ${{ needs.Variables.outputs.TEST_TAG }}
RUN_GHA: ${{ needs.Call-RPM-Build.outputs.run-gha == 'true' }}
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
_topdir/
*.tar.gz
*-workspace
*-workspace
mock_result/
23 changes: 23 additions & 0 deletions .yamllint.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Yamllint configuration file, used by github actions and commit hooks.
#
# The yamllint tool will use .yamllint in preference to this file and it is in .gitignore so users
# can create one locally to overrule these settings for local commit hooks.

extends: default

rules:
line-length:
max: 100
indentation:
spaces: 2
truthy:
allowed-values: ['true', 'false', 'True', 'False']
check-keys: false
document-start:
present: false
document-end:
present: false

ignore: |
/_topdir/
/.git/
2 changes: 1 addition & 1 deletion packaging/get_base_branch
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

set -eux -o pipefail
IFS=' ' read -r -a add_bases <<< "${1:-}"
origin=origin
origin="${ORIGIN:-origin}"
mapfile -t all_bases < <(echo "master"
git branch -r | sed -ne "/^ $origin\\/release\\/[0-9]/s/^ $origin\\///p")
all_bases+=("${add_bases[@]}")
Expand Down

0 comments on commit 3ae71a8

Please sign in to comment.