Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

enh(ci): add pipeline for as400 using nfpm #5167

Merged
merged 40 commits into from
Sep 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
c5dcf4b
add minimal workflow and build files
tuntoja Sep 3, 2024
9392f0f
fix prepare files for packaging step
tuntoja Sep 3, 2024
351dd0c
add as400 dirs and files
tuntoja Sep 3, 2024
f6febb8
use java 1.8 as require and target
tuntoja Sep 3, 2024
6754829
remove java 17 from java packaging container
tuntoja Sep 4, 2024
db6ec0c
add minimal rpm packaging
tuntoja Sep 4, 2024
a6f173e
update docker image name for packaging in as400 workflow
tuntoja Sep 4, 2024
eee97b5
add alma8 java packaging image entry to docker builder matrix
tuntoja Sep 4, 2024
6081de5
removed old doc as it is now outdated
tuntoja Sep 4, 2024
8e72318
removed java_home in dockerfile
tuntoja Sep 4, 2024
7e3a866
update pom.xml path in packaging
tuntoja Sep 4, 2024
7338fe2
add path debug to packaging
tuntoja Sep 4, 2024
c77598a
fix
tuntoja Sep 4, 2024
5a852e6
fix path
tuntoja Sep 4, 2024
6d43e9b
add install files and dirs
tuntoja Sep 4, 2024
77ee74c
update install files and dirs
tuntoja Sep 4, 2024
5318557
add alma9 packaging dockerfile
tuntoja Sep 4, 2024
0fd7fa7
enable alma9 packaging in workflow
tuntoja Sep 4, 2024
1e1653a
add alma9 java packaging image entry to docker builder matrix
tuntoja Sep 4, 2024
dc35254
fix alma9 java packaging image name in package job matrix
tuntoja Sep 4, 2024
a69f919
update deb dependency for default-jre
tuntoja Sep 5, 2024
88d5fc9
add packaging dockerfiles for debian
tuntoja Sep 5, 2024
6e03ab9
update debian java packaging dockerfiles
tuntoja Sep 5, 2024
ed5b3e1
enable deb packaging in workflow
tuntoja Sep 5, 2024
568bad2
add workdir to debian packaging dockerfile
tuntoja Sep 5, 2024
c536225
update as400 package matrix
tuntoja Sep 5, 2024
e0552d7
fix docker builder matrix
tuntoja Sep 5, 2024
2138ac5
use java 17 on all os
tuntoja Sep 9, 2024
f2a0e17
update as400 pom.xml plugins and java version
tuntoja Sep 9, 2024
a88efb5
up alma8 to maven 3.6.3
tuntoja Sep 9, 2024
19a8f32
update alma8 container
tuntoja Sep 9, 2024
f810172
add mvn version output
tuntoja Sep 10, 2024
01bca92
enable delivery and force use of java 17 ffor packaging
tuntoja Sep 11, 2024
ad9fadb
force stability to unstable
tuntoja Sep 11, 2024
9bf9d42
add missing cache
tuntoja Sep 11, 2024
9063a0e
update module_name for delivery
tuntoja Sep 11, 2024
c026589
add dockerfile and packaging on jammy
tuntoja Sep 17, 2024
fcf884f
add jammy to packaging matrix
tuntoja Sep 17, 2024
3adbb64
fix packaging matrix
tuntoja Sep 17, 2024
330da2d
Update .github/workflows/get-environment.yml
tuntoja Sep 20, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
ARG REGISTRY_URL

FROM ${REGISTRY_URL}/almalinux:8

RUN bash -e <<EOF

dnf install -y \
git \
wget \
zstd \
https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

cd /usr/local/src
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
tar zxf apache-maven-3.8.8-bin.tar.gz
ln -s /usr/local/src/apache-maven-3.8.8/bin/mvn /usr/bin/mvn
rm -f apache-maven-3.8.8-bin.tar.gz

echo '[goreleaser]
name=GoReleaser
baseurl=https://repo.goreleaser.com/yum/
enabled=1
gpgcheck=0' | tee /etc/yum.repos.d/goreleaser.repo
dnf install -y nfpm
dnf clean all

EOF

WORKDIR /src
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
ARG REGISTRY_URL

FROM ${REGISTRY_URL}/almalinux:9

RUN bash -e <<EOF

dnf install -y \
git \
wget \
zstd \
https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.rpm

cd /usr/local/src
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
tar zxf apache-maven-3.8.8-bin.tar.gz
ln -s /usr/local/src/apache-maven-3.8.8/bin/mvn /usr/bin/mvn
rm -f apache-maven-3.8.8-bin.tar.gz

echo '[goreleaser]
name=GoReleaser
baseurl=https://repo.goreleaser.com/yum/
enabled=1
gpgcheck=0' | tee /etc/yum.repos.d/goreleaser.repo
dnf install -y nfpm
dnf clean all

EOF

WORKDIR /src
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ARG REGISTRY_URL

FROM ${REGISTRY_URL}/debian:bookworm

RUN bash -e <<EOF

apt-get update
apt-get install -y \
ca-certificates \
git \
zstd \
maven=3.8.7-1 \
openjdk-17-jdk

echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list

apt-get update
apt-get install -y nfpm

apt-get clean all

EOF

WORKDIR /src
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
ARG REGISTRY_URL

FROM ${REGISTRY_URL}/debian:bullseye

RUN bash -e <<EOF

apt-get update
apt-get install -y \
ca-certificates \
git \
zstd \
maven=3.6.3-5 \
openjdk-17-jdk

echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list

apt-get update
apt-get install -y nfpm

apt-get clean all

EOF

WORKDIR /src
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ARG REGISTRY_URL

FROM ${REGISTRY_URL}/ubuntu:jammy

RUN bash -e <<EOF

apt-get update
apt-get install -y \
ca-certificates \
git \
wget \
zstd \
openjdk-17-jdk

cd /usr/local/src
wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
tar zxf apache-maven-3.8.8-bin.tar.gz
ln -s /usr/local/src/apache-maven-3.8.8/bin/mvn /usr/bin/mvn
rm -f apache-maven-3.8.8-bin.tar.gz

echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | tee /etc/apt/sources.list.d/goreleaser.list

apt-get update
apt-get install -y nfpm

apt-get clean all

EOF

WORKDIR /src
149 changes: 149 additions & 0 deletions .github/workflows/as400.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: as400

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

on:
workflow_dispatch:
pull_request:
paths:
- 'as400/packaging/**'
push:
branches:
- develop
- master
paths:
- 'as400/packaging/**'

jobs:
get-environment:
uses: ./.github/workflows/get-environment.yml
with:
version_file: as400/packaging/centreon-as400-daemon.yaml

package:
needs: [get-environment]
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
include:
- package_extension: rpm
image: packaging-plugins-java-alma8
distrib: el8
- package_extension: rpm
image: packaging-plugins-java-alma9
distrib: el9
- package_extension: deb
image: packaging-plugins-java-bullseye
distrib: bullseye
- package_extension: deb
image: packaging-plugins-java-bookworm
distrib: bookworm
- package_extension: deb
image: packaging-plugins-java-jammy
distrib: jammy


container:
image: ${{ vars.DOCKER_INTERNAL_REGISTRY_URL }}/${{ matrix.image }}
credentials:
username: ${{ secrets.DOCKER_REGISTRY_ID }}
password: ${{ secrets.DOCKER_REGISTRY_PASSWD }}

name: package ${{ matrix.distrib }}

steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Prepare files for packaging
run: |
find . \
-type f \
-exec grep -E '(@CONNECTOR_VERSION@)|(@CONNECTOR_HOME@)|(@CONNECTOR_ETC@)|(@CONNECTOR_LOG@)|(@CONNECTOR_USER@)|(@JAVA_BIN@)' {} ';' \
-exec sed -i \
-e 's|@CONNECTOR_VERSION@|'"%{version}"'|g' \
-e 's|@CONNECTOR_HOME@|'"%{_datadir}/centreon-as400"'|g' \
-e 's|@CONNECTOR_ETC@|'"/etc/centreon-as400/"'|g' \
-e 's|@CONNECTOR_LOG@|'"/var/log/centreon-as400/"'|g' \
-e 's|@CONNECTOR_USER@|'"centreon-as400"'|g' \
-e 's|@JAVA_BIN@|'"/usr/bin/java"'|g' \
{} ';'
shell: bash

- name: Set JAVA_HOME
run: export JAVA_HOME=$( java -XshowSettings:properties -version 2>&1 > /dev/null | grep 'java.home' | tr -s ' ' | cut -d ' ' -f 4)

- name: Build JAR using maven
run: mvn -version && mvn clean install -f as400/connector.as400/pom.xml

- name: Remove me after debug
run: find / -name "centreon-as400*.jar"

- name: Package
uses: ./.github/actions/package-nfpm
with:
nfpm_file_pattern: "as400/packaging/centreon-as400-daemon.yaml"
distrib: ${{ matrix.distrib }}
package_extension: ${{ matrix.package_extension }}
version: ${{ needs.get-environment.outputs.version }}
release: ${{ needs.get-environment.outputs.release }}
arch: all
commit_hash: ${{ github.sha }}
cache_key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-as400-${{ matrix.distrib }}
rpm_gpg_key: ${{ secrets.RPM_GPG_SIGNING_KEY }}
rpm_gpg_signing_key_id: ${{ secrets.RPM_GPG_SIGNING_KEY_ID }}
rpm_gpg_signing_passphrase: ${{ secrets.RPM_GPG_SIGNING_PASSPHRASE }}
stability: ${{ needs.get-environment.outputs.stability }}

- name: Save to cache
uses: actions/cache/save@704facf57e6136b1bc63b828d79edcd491f0ee84 # v3.3.2
with:
path: ./*.${{ matrix.package_extension }}
key: ${{ github.sha }}-${{ github.run_id }}-${{ matrix.package_extension }}-${{ matrix.distrib }}

deliver-rpm:
needs: [get-environment, package]
if: ${{ contains(fromJson('["stable", "testing", "unstable"]'), needs.get-environment.outputs.stability) }}
runs-on: [self-hosted, common]

strategy:
matrix:
distrib: [el8, el9]

steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Delivery
uses: ./.github/actions/rpm-delivery
with:
module_name: as400
distrib: ${{ matrix.distrib }}
cache_key: ${{ github.sha }}-${{ github.run_id }}-rpm-${{ matrix.distrib }}
stability: ${{ needs.get-environment.outputs.stability }}
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}

deliver-deb:
needs: [get-environment, package]
if: ${{ contains(fromJson('["stable", "testing", "unstable"]'), needs.get-environment.outputs.stability) }}
runs-on: [self-hosted, common]

strategy:
matrix:
distrib: [bullseye, bookworm, jammy]

steps:
- name: Checkout sources
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- name: Delivery
uses: ./.github/actions/deb-delivery
with:
module_name: as400
distrib: ${{ matrix.distrib }}
cache_key: ${{ github.sha }}-${{ github.run_id }}-deb-${{ matrix.distrib }}
stability: ${{ needs.get-environment.outputs.stability }}
artifactory_token: ${{ secrets.ARTIFACTORY_ACCESS_TOKEN }}
15 changes: 15 additions & 0 deletions .github/workflows/docker-builder-packaging-plugins.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ jobs:
- runner: ubuntu-22.04
dockerfile: packaging-plugins-alma9
image: packaging-plugins-alma9
- runner: ubuntu-22.04
dockerfile: packaging-plugins-java-alma8
image: packaging-plugins-java-alma8
- runner: ubuntu-22.04
dockerfile: packaging-plugins-java-alma9
image: packaging-plugins-java-alma9
- runner: ubuntu-22.04
dockerfile: packaging-plugins-bullseye
image: packaging-plugins-bullseye
Expand All @@ -37,9 +43,18 @@ jobs:
- runner: ubuntu-22.04
dockerfile: packaging-plugins-bookworm
image: packaging-plugins-bookworm
- runner: ubuntu-22.04
dockerfile: packaging-plugins-java-bullseye
image: packaging-plugins-java-bullseye
- runner: ubuntu-22.04
dockerfile: packaging-plugins-java-bookworm
image: packaging-plugins-java-bookworm
- runner: ubuntu-22.04
dockerfile: packaging-plugins-jammy
image: packaging-plugins-jammy
- runner: ubuntu-22.04
dockerfile: packaging-plugins-java-jammy
image: packaging-plugins-java-jammy

runs-on: ${{ matrix.runner }}

Expand Down
Loading
Loading