name: Release on: push: tags: - "[0-9]+.[0-9]+.[0-9]+" env: BUILD_TYPE: Release jobs: release: name: Create Release runs-on: ubuntu-latest steps: - name: Get Ref Names id: ref_name run: | echo "SOURCE_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT echo "SOURCE_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT echo "SOURCE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - uses: actions/checkout@v4 - uses: ncipollo/release-action@v1 with: tag: ${{ steps.ref_name.outputs.SOURCE_TAG }} body: "RtBrick BNG Blaster Version ${{ steps.ref_name.outputs.SOURCE_TAG }}" build: name: Build Release ${{matrix.os}} needs: [release] runs-on: ${{matrix.os}} strategy: matrix: os: [ubuntu-20.04, ubuntu-22.04] steps: - uses: actions/checkout@v4 - name: Download RtBrick libdict shell: bash run: wget https://github.com/rtbrick/libdict/releases/download/1.0.3/libdict-${{matrix.os}}.zip - name: Install RtBrick libdict shell: bash run: unzip libdict-${{matrix.os}}.zip; sudo dpkg -i libdict_1.0.3_amd64.deb; sudo dpkg -i libdict-dev_1.0.3_amd64.deb - name: Install Dependencies shell: bash run: sudo apt install -y libcunit1-dev libncurses-dev libssl-dev libjansson-dev libcmocka-dev libpcap-dev - name: Get Ref Names id: ref_name run: | echo "SOURCE_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT echo "SOURCE_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_OUTPUT echo "SOURCE_TAG=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT - name: Set export SOURCE_DATE_EPOCH to git commit time run: | echo "SOURCE_DATE_EPOCH=$(git log -1 --format=%ct)" >> $GITHUB_ENV - name: Create Build Environment run: cmake -E make_directory ${{ github.workspace }}/build - name: Configure CMake shell: bash working-directory: ${{ github.workspace }}/build run: cmake $GITHUB_WORKSPACE -DBNGBLASTER_VERSION=${{ steps.ref_name.outputs.SOURCE_TAG }} -DBNGBLASTER_TESTS=ON -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBNGBLASTER_OS=${{matrix.os}} - name: Build working-directory: ${{ github.workspace }}/build shell: bash run: cmake --build . --config $BUILD_TYPE - name: Test working-directory: ${{ github.workspace }}/build shell: bash run: ctest -C $BUILD_TYPE - name: Package working-directory: ${{github.workspace}}/build shell: bash run: cpack -G DEB - name: Upload Debian Package uses: svenstaro/upload-release-action@v2 with: repo_token: ${{ secrets.GITHUB_TOKEN }} file: build/bngblaster_${{ steps.ref_name.outputs.SOURCE_TAG }}_amd64.deb asset_name: bngblaster-${{ steps.ref_name.outputs.SOURCE_TAG }}-${{ matrix.os }}_amd64.deb tag: ${{ steps.ref_name.outputs.SOURCE_TAG }}