diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:34:54 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 12:34:54 +0000 |
commit | 0915b3ef56dfac3113cce55a59a5765dc94976be (patch) | |
tree | a8fea11d50b4f083e1bf0f90025ece7f0824784a /.github/workflows/rpm.yml | |
parent | Initial commit. (diff) | |
download | icinga2-0915b3ef56dfac3113cce55a59a5765dc94976be.tar.xz icinga2-0915b3ef56dfac3113cce55a59a5765dc94976be.zip |
Adding upstream version 2.13.6.upstream/2.13.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '.github/workflows/rpm.yml')
-rw-r--r-- | .github/workflows/rpm.yml | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/.github/workflows/rpm.yml b/.github/workflows/rpm.yml new file mode 100644 index 0000000..d3be406 --- /dev/null +++ b/.github/workflows/rpm.yml @@ -0,0 +1,148 @@ +name: .rpm + +on: + push: + branches: + - master + - 'support/*' + pull_request: {} + +jobs: + rpm: + name: .rpm (${{ matrix.distro.name }}, ${{ matrix.distro.release }}) + + strategy: + fail-fast: false + matrix: + distro: + - name: rhel + release: 8 + subscription: true + - name: rhel + release: 7 + subscription: true + - name: centos + release: 7 + subscription: false + - name: amazon-linux + release: al2:x86_64 + subscription: true + - name: fedora + release: 36 + subscription: false + - name: fedora + release: 35 + subscription: false + - name: sles + release: '15.4' + subscription: true + - name: sles + release: '15.3' + subscription: true + - name: sles + release: '12.5' + subscription: true + - name: opensuse + release: '15.4' + subscription: false + - name: opensuse + release: '15.3' + subscription: false + + runs-on: ubuntu-latest + + steps: + - name: Cancel previous jobs for the same PR + if: "github.event_name == 'pull_request'" + uses: styfle/cancel-workflow-action@89f242ee29e10c53a841bfe71cc0ce7b2f065abc + with: + workflow_id: deb.yml,docker.yml,raspbian.yml,rpm.yml,windows.yml + access_token: ${{ secrets.GITHUB_TOKEN }} + + - name: Vars + id: vars + env: + GITLAB_RO_TOKEN: '${{ secrets.GITLAB_RO_TOKEN }}' + run: | + if [ ${{ matrix.distro.subscription }} = true ]; then + if [ "$(tr -d '\n' <<<"$GITLAB_RO_TOKEN" |wc -c)" -eq 0 ]; then + echo '::set-output name=CAN_BUILD::false' + echo '::set-output name=NEED_LOGIN::false' + else + echo '::set-output name=CAN_BUILD::true' + echo '::set-output name=NEED_LOGIN::true' + fi + else + echo '::set-output name=CAN_BUILD::true' + echo '::set-output name=NEED_LOGIN::false' + fi + + - name: Checkout HEAD + if: "steps.vars.outputs.CAN_BUILD == 'true'" + uses: actions/checkout@v1 + + - name: Login + if: "steps.vars.outputs.NEED_LOGIN == 'true'" + env: + GITLAB_RO_TOKEN: '${{ secrets.GITLAB_RO_TOKEN }}' + run: | + docker login registry.icinga.com -u github-actions --password-stdin <<<"$GITLAB_RO_TOKEN" + + - name: rpm-icinga2 + if: "steps.vars.outputs.CAN_BUILD == 'true' && !matrix.distro.subscription" + run: | + set -exo pipefail + git clone https://git.icinga.com/packaging/rpm-icinga2.git + chmod o+w rpm-icinga2 + + - name: subscription-rpm-icinga2 + if: "steps.vars.outputs.CAN_BUILD == 'true' && matrix.distro.subscription" + env: + GITLAB_RO_TOKEN: '${{ secrets.GITLAB_RO_TOKEN }}' + run: | + set -exo pipefail + git config --global credential.helper store + cat <<EOF >~/.git-credentials + https://github-actions:${GITLAB_RO_TOKEN}@git.icinga.com + EOF + git clone https://git.icinga.com/packaging/subscription-rpm-icinga2.git rpm-icinga2 + chmod o+w rpm-icinga2 + + - name: Restore/backup ccache + if: "steps.vars.outputs.CAN_BUILD == 'true'" + id: ccache + uses: actions/cache@v1 + with: + path: rpm-icinga2/ccache + key: |- + ${{ matrix.distro.name }}/${{ matrix.distro.release }}-ccache-${{ hashFiles('rpm-icinga2/ccache') }} + + - name: Binary + if: "steps.vars.outputs.CAN_BUILD == 'true'" + run: | + set -exo pipefail + git checkout -B master + if [ -e rpm-icinga2/ccache ]; then + chmod -R o+w rpm-icinga2/ccache + fi + docker run --rm \ + -v "$(pwd)/rpm-icinga2:/rpm-icinga2" \ + -v "$(pwd)/.git:/icinga2.git:ro" \ + -w /rpm-icinga2 \ + -e ICINGA_BUILD_PROJECT=icinga2 \ + -e ICINGA_BUILD_TYPE=snapshot \ + -e UPSTREAM_GIT_URL=file:///icinga2.git \ + registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.release }} \ + icinga-build-package + + - name: Test + if: "steps.vars.outputs.CAN_BUILD == 'true'" + run: | + set -exo pipefail + docker run --rm \ + -v "$(pwd)/rpm-icinga2:/rpm-icinga2" \ + -w /rpm-icinga2 \ + -e ICINGA_BUILD_PROJECT=icinga2 \ + -e ICINGA_BUILD_TYPE=snapshot \ + registry.icinga.com/build-docker/${{ matrix.distro.name }}/${{ matrix.distro.release }} \ + icinga-build-test |