Tempesta Technologies
  • Home
  • Tempesta FW
    • Features
      • Web acceleration
      • Load balancing
      • Application performance monitoring
    • Performance
    • How it works
    • Deployment
    • Support
    • Knowledge base
  • Services
    • Software development
      • High performance
      • Networking
      • Databases
      • Linux kernel
      • Machine learning
      • How we work
      • Case studies
    • Performance analysis
    • Network security
      • DDoS protection
      • Application security
      • Cryptography
      • Security assessment
      • How we work
      • Case Studies
  • Solutions
    • DDoS Protection
    • Web Acceleration
  • Blog
  • Company
    • Research
    • Careers
    • Contact
Tempesta Technologies

Prepare a new release

Continuous Delivery can complete the current manual from beginning to end, but it’s not configured/implemented yet and manual actions are required #786 . The document shouldn’t be abandoned on CD arrival, it should document CD behaviour instead.

Release check list๐Ÿ”—

After a new release is build and uploaded the following list of actions must be performed to assure the the uploaded release is fully functional.

  • Only release branch are packaged, not bugfix or feature branch. Currently only one release branch exists: release-0.8
  • Release version must be bumped.
  • Troubleshooting allowed kernel version must be bumped. Also, please other requirements
  • Changelog must be updated.
  • Check for changes Wiki Page 1, Wiki Page 2
  • Actual commit in the release branch used to build the package must be marked by a git tag with name equal to release version.
  • Clean environment must be used to build the package.
  • Build the package
  • Assure that the package is fully functional: package has the correct version number, it can be successfully installed, and once installed, it normally operates (better is to run functional tests against the built artefact).
  • Upload the package to Nexus ant GitHub releases page.

Instructions๐Ÿ”—

Prerequisites๐Ÿ”—

Install clean Ubuntu 24.04 LTS and update to the last version.

Clone the tempesta and tempesta-ci repositories:

git clone https://github.com/tempesta-tech/tempesta.git -b <release-branch>
git clone https://github.com/tempesta-tech/tempesta-ci.git

[TODO]: Configure digital signatures to sign packages after build. At the moment packages are unsigned.

Packaging Linux kernel๐Ÿ”—

Just run release script:

tempesta-ci/scripts/kernel_release.py --tempesta_path /home/ubuntu/tempesta --release-version 0.8.0 --token <access_token>

  • create access_token with owner Tempesta-Tech and request the access (token might be accepted by organization owner)

This script will create a new release on https://github.com/tempesta-tech/linux-5.10.35-tfw/releases.

We have Jenkins job to create release page for kernel repositories.

Consult the manual in the separate repo (deprecated).

Packaging Tempesta๐Ÿ”—

  1. Install the required kernel version:

    sudo ./tempesta-ci/scripts/kernel_installer.py --make_default --install-only --tempesta_path=/home/ubuntu/tempesta
    
  2. Disable graphical terminal and reboot the system for a new kernel version:

    echo 'GRUB_TERMINAL="serial console"' | sudo tee -a /etc/default/grub
    sudo update-grub
    sudo reboot
    
  3. Check the kernel version – uname -r, it should have a similar pattern – 5.10.35.tfw-669c591
  4. Install build dependencies for Tempesta FW.
  5. Build Tempesta FW:

    cd tempesta
    make
    
  6. Configure packager information:

    export DEBEMAIL="info@tempesta-tech.com"
    export DEBFULLNAME="Tempesta Technologies, Inc."
    
  7. Change kernel version in pkg/debian/control for linux-headers and linux-image to current kernel version (from uname -r)
  8. Install build requirements:

    sudo apt-get install devscripts build-essential lintian debhelper -y
    
  9. Create symlink and run build:

    ln -s pkg/debian/ debian
    debuild -us -uc
    cd ..
    

The binary package will be saved as tempesta-fw_<VERSION>_amd64.deb. Other files are required to distribute the TemestaFW through software repository.

Testing the built artefacts๐Ÿ”—

Run installation of built package tempesta-fw__amd64.deb on clean Ubuntu24

sudo apt install ./tempesta-fw_0.8.0_amd64.deb

Install clean Ubuntu 24.04 system and follow the installation guide. Assure that the correct version is installed and it’s operational.

Uploading to Nexus๐Ÿ”—

Navigate to Nexus and upload builded tempesta-fw package via Upload component button.

If you receive a network error and, after 5 retries, still canโ€™t upload the build, check the upload request details in the browserโ€™s network tab. Then, use those details to make a cURL request and upload directly from the virtual machine used to build it.

Uploading to GitHub๐Ÿ”—

Imagine, that version 0.5.4 is build for release-0.7 branch.

Mark the commit used for the build and build the package.

git tag 0.7.0
git push --tags 

Once package is built and tested, create a new release on GitHub, tag, used to publish the release must follow the scheme: <distro-version>/<release_version>:

ubuntu-22/0.7.0

Tick Pre-Release gauge for alpha releases.


Share this article
  • Home
  • Requirements
  • Installation
    • Install from packages
    • Install from Sources
  • Configuration
    • Migration from Nginx
    • On the fly Reconfiguration
    • Handling clients
    • Backend servers
    • Scheduling and Load Balancing
    • Caching Responses
    • Non Idempotent Requests
    • Modify HTTP Messages
    • Virtual hosts and locations
    • Sticky Cookie
    • HTTP tables
    • HTTP security
    • Header Via
    • Health monitor
    • Tempesta TLS
    • Vhost Confusion
    • Traffic Filtering by Fingerprints
    • Access Log Analytics
  • Run and stop
  • Application Performance Monitoring
    • Performance statistics
    • Servers statistics
  • Use cases
    • Clouds
    • High availability
    • DDoS mitigation
    • Web security
    • WAF acceleration
    • Best practices
    • WordPress tips and tricks
  • Performance
    • Hardware virtualization performance
    • HTTP cache performance
    • HTTP transactions performance
    • HTTPS performance
    • HTTP2 streams prioritization
  • Bot Protection
    • Tempesta Webshield
    • Setup and Run The Webshield
    • Webshield Configuration
    • Webshield Detectors
    • Webshield Observability
    • Webshield Use Cases
  • Contributing
    • Report issues and send patches
    • Development guidelines
    • Memory safety guideline
    • Debugging and troubleshooting
    • Prepare a new release
    • Testing
    • QTCreator project

Powered by Tempesta FW

Stay up to date with our latest developments

Useful Links

Home
Blog

Tempestaยฎ FW

Features
Performance
Deployment
Support
Knowledge Base

Services

Software Development
Performance analysis
Network Security

Solutions

DDoS Protection

Web Acceleration

Company

Research
Careers
Contact