|
| 1 | +on: |
| 2 | + release: |
| 3 | + types: [edited, created] |
| 4 | + |
| 5 | +name: Upload Release |
| 6 | + |
| 7 | +jobs: |
| 8 | + build: |
| 9 | + runs-on: ubuntu-latest |
| 10 | + continue-on-error: true |
| 11 | + strategy: |
| 12 | + matrix: |
| 13 | + include: |
| 14 | + - distro: centos |
| 15 | + release: 7 |
| 16 | + pkg: rpm |
| 17 | + pkg_name: el |
| 18 | + - distro: centos |
| 19 | + release: 8 |
| 20 | + pkg: rpm |
| 21 | + pkg_name: el |
| 22 | + |
| 23 | + - distro: ubuntu |
| 24 | + release: focal |
| 25 | + pkg: deb |
| 26 | + pkg_name: ubuntu |
| 27 | + |
| 28 | + - distro: debian |
| 29 | + release: bullseye |
| 30 | + pkg: deb |
| 31 | + pkg_name: debian |
| 32 | + |
| 33 | + container: |
| 34 | + image: ${{ matrix.distro }}:${{ matrix.release }} |
| 35 | + |
| 36 | + steps: |
| 37 | + - name: Checkout code |
| 38 | + uses: actions/checkout@v2 |
| 39 | + |
| 40 | + - name: Set Version |
| 41 | + run: | |
| 42 | + echo "KENTIK_KTRANSLATE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV |
| 43 | +
|
| 44 | + - name: Setup Go |
| 45 | + uses: actions/setup-go@v2 |
| 46 | + with: |
| 47 | + go-version: '1.18.3' |
| 48 | + |
| 49 | + - name: Get Deps |
| 50 | + shell: bash |
| 51 | + run: | |
| 52 | + if [ "${{ matrix.distro }}" = "centos" ] |
| 53 | + then |
| 54 | + if [ "${{ matrix.release }}" = "7" ] |
| 55 | + then |
| 56 | + yum install -y centos-release-scl |
| 57 | + yum install -y make gcc diffutils libpcap-devel rh-ruby27 rh-ruby27-ruby-devel redhat-rpm-config gcc-c++ rh-ruby27-rubygems |
| 58 | + scl enable rh-ruby27 bash |
| 59 | + else |
| 60 | + dnf -y --disablerepo '*' --enablerepo=extras swap centos-linux-repos centos-stream-repos |
| 61 | + yum install -y make gcc diffutils ruby-devel redhat-rpm-config gcc-c++ |
| 62 | + dnf -y --enablerepo=powertools install libpcap-devel |
| 63 | + fi |
| 64 | + else |
| 65 | + apt-get update |
| 66 | + apt-get -y install make libpcap-dev ca-certificates build-essential curl ruby ruby-dev |
| 67 | + fi |
| 68 | +
|
| 69 | + - name: Run Make |
| 70 | + run: | |
| 71 | + echo ${{ env.KENTIK_KTRANSLATE_VERSION }} |
| 72 | + KENTIK_KTRANSLATE_VERSION=${{ env.KENTIK_KTRANSLATE_VERSION }} make |
| 73 | +
|
| 74 | + - name: Run Test |
| 75 | + run: make test |
| 76 | + |
| 77 | + - name: Install MM DBs |
| 78 | + run: | |
| 79 | + MM_DOWNLOAD_KEY=${{ secrets.MM_DOWNLOAD_KEY }} ./bin/get_mm.sh |
| 80 | +
|
| 81 | + - name: Install SNMP Profiles |
| 82 | + uses: actions/checkout@main |
| 83 | + with: |
| 84 | + repository: kentik/snmp-profiles |
| 85 | + path: ./config/profiles |
| 86 | + |
| 87 | + - name: Create package |
| 88 | + id: package |
| 89 | + uses: kentik/pkg@master |
| 90 | + with: |
| 91 | + name: ktranslate |
| 92 | + version: ${{ env.KENTIK_KTRANSLATE_VERSION }} |
| 93 | + arch: x86_64 |
| 94 | + format: ${{ matrix.pkg }} |
| 95 | + package: ktranslate-package.yml |
| 96 | + |
| 97 | + - name: Upload Release Asset |
| 98 | + id: upload-release-asset |
| 99 | + uses: actions/upload-release-asset@v1 |
| 100 | + env: |
| 101 | + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| 102 | + with: |
| 103 | + upload_url: ${{ github.event.release.upload_url }} |
| 104 | + asset_path: ${{ steps.package.outputs.package }} |
| 105 | + asset_name: ${{ steps.package.outputs.package }}--${{ matrix.distro }}-${{ matrix.release }} |
| 106 | + asset_content_type: application/binary |
| 107 | + |
| 108 | + - name: Send to packagecloud |
| 109 | + shell: bash |
| 110 | + env: |
| 111 | + PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }} |
| 112 | + run: | |
| 113 | + if [ "${{ matrix.release }}" = "7" ] # Centos7 is extra hard to work with. |
| 114 | + then |
| 115 | + export PATH=/opt/rh/rh-ruby27/root/usr/local/bin:/opt/rh/rh-ruby27/root/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin |
| 116 | + export LD_LIBRARY_PATH=/opt/rh/rh-ruby27/root/usr/local/lib64:/opt/rh/rh-ruby27/root/usr/lib64 |
| 117 | + ruby -v |
| 118 | + gem -v |
| 119 | + fi |
| 120 | + REPO="${{ github.event.repository.name }}" |
| 121 | + gem install package_cloud |
| 122 | + package_cloud push kentik/$REPO/${{ matrix.pkg_name }}/${{ matrix.release }} ${{ steps.package.outputs.package }} |
0 commit comments