diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml new file mode 100644 index 0000000..c6f50eb --- /dev/null +++ b/.github/workflows/Release.yml @@ -0,0 +1,135 @@ +# See: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions + +# Workflow name +name: Release + +# Run on tag push +on: push + +jobs: + + # + # Build on AlmaLinux 8.5 using go-toolset + # + AlmaLinux-RPM-build: + runs-on: ubuntu-latest + # See: https://hub.docker.com/_/almalinux + container: almalinux:8.5 + outputs: + rpm : ${{steps.rpmrename.outputs.RPM}} + srpm : ${{steps.rpmrename.outputs.SRPM}} + steps: + + # Use dnf to install development packages + - name: Install development packages + run: dnf --assumeyes group install "Development Tools" "RPM Development Tools" + + # Checkout git repository and submodules + # fetch-depth must be 0 to use git describe + # See: https://github.com/marketplace/actions/checkout + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive + fetch-depth: 0 + + # Use dnf to install build dependencies + - name: Install build dependencies + run: dnf --assumeyes builddep scripts/cc-metric-collector.spec + + - name: RPM build MetricCollector + id: rpmbuild + run: make RPM + + - name: Rename RPMs (s/el8/alma85/) + id: rpmrename + run: | + OLD_RPM=${{steps.rpmbuild.outputs.RPM}} + OLD_SRPM=${{steps.rpmbuild.outputs.SRPM}} + echo "::set-output name=SRPM::$${OLD_SRPM/el8/alma85}"" + echo "::set-output name=RPM::$${OLD_RPM/el8/alma85}" + + # # See: https://github.com/actions/upload-artifact + # - name: Save RPM as artifact + # uses: actions/upload-artifact@v2 + # with: + # name: cc-metric-collector RPM for AlmaLinux 8.5 + # path: ${{ steps.rpmbuild.outputs.RPM }} + # - name: Save SRPM as artifact + # uses: actions/upload-artifact@v2 + # with: + # name: cc-metric-collector SRPM for AlmaLinux 8.5 + # path: ${{ steps.rpmbuild.outputs.SRPM }} + + # # See: https://github.com/softprops/action-gh-release + # - name: Release + # uses: softprops/action-gh-release@v1 + # if: startsWith(github.ref, 'refs/tags/') + # with: + # name: cc-metric-collector-${{github.ref_name}} + # files: | + # ${{ steps.rpmbuild.outputs.RPM }} + # ${{ steps.rpmbuild.outputs.SRPM }} + # + # Build on UBI 8 using go-toolset + # + UBI-8-RPM-build: + runs-on: ubuntu-latest + # See: https://catalog.redhat.com/software/containers/ubi8/ubi/5c359854d70cc534b3a3784e?container-tabs=gti + container: registry.access.redhat.com/ubi8/ubi:8.5-226.1645809065 + outputs: + rpm : ${{steps.rpmbuild.outputs.RPM}} + srpm : ${{steps.rpmbuild.outputs.SRPM}} + steps: + + # Use dnf to install development packages + - name: Install development packages + run: dnf --assumeyes --disableplugin=subscription-manager install rpm-build go-srpm-macros rpm-build-libs rpm-libs gcc make python38 git + + # Checkout git repository and submodules + # fetch-depth must be 0 to use git describe + # See: https://github.com/marketplace/actions/checkout + - name: Checkout + uses: actions/checkout@v2 + with: + submodules: recursive + fetch-depth: 0 + + # Use dnf to install build dependencies + - name: Install build dependencies + run: dnf --assumeyes --disableplugin=subscription-manager builddep scripts/cc-metric-collector.spec + + - name: RPM build MetricCollector + id: rpmbuild + run: make RPM + + # # See: https://github.com/actions/upload-artifact + # - name: Save RPM as artifact + # uses: actions/upload-artifact@v2 + # with: + # name: cc-metric-collector RPM for UBI 8 + # path: ${{ steps.rpmbuild.outputs.RPM }} + # - name: Save SRPM as artifact + # uses: actions/upload-artifact@v2 + # with: + # name: cc-metric-collector SRPM for UBI 8 + # path: ${{ steps.rpmbuild.outputs.SRPM }} + + + + Release: + runs-on: ubuntu-latest + needs: [AlmaLinux-RPM-build, UBI-8-RPM-build] + + steps: + # See: https://github.com/softprops/action-gh-release + - name: Release + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') + with: + name: cc-metric-collector-${{github.ref_name}} + files: | + ${{ needs.AlmaLinux-RPM-build.outputs.RPM }} + ${{ needs.AlmaLinux-RPM-build.outputs.SRPM }} + ${{ needs.UBI-8-RPM-build.outputs.RPM }} + ${{ needs.UBI-8-RPM-build.outputs.SRPM }} \ No newline at end of file