name: .rpm on: push: branches: - master - 'support/*' pull_request: {} concurrency: group: rpm-${{ github.event_name == 'push' && github.sha || github.ref }} cancel-in-progress: true jobs: rpm: name: .rpm (${{ matrix.distro.name }}, ${{ matrix.distro.release }}) strategy: fail-fast: false max-parallel: 1 matrix: distro: - name: sles release: '12.5' subscription: true runs-on: ubuntu-latest steps: - 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 <~/.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