Close Menu
    DevStackTipsDevStackTips
    • Home
    • News & Updates
      1. Tech & Work
      2. View All

      This week in AI updates: Mistral’s new Le Chat features, ChatGPT updates, and more (September 5, 2025)

      September 6, 2025

      Designing For TV: Principles, Patterns And Practical Guidance (Part 2)

      September 5, 2025

      Neo4j introduces new graph architecture that allows operational and analytics workloads to be run together

      September 5, 2025

      Beyond the benchmarks: Understanding the coding personalities of different LLMs

      September 5, 2025

      Hitachi Energy Pledges $1B to Strengthen US Grid, Build Largest Transformer Plant in Virginia

      September 5, 2025

      How to debug a web app with Playwright MCP and GitHub Copilot

      September 5, 2025

      Between Strategy and Story: Thierry Chopain’s Creative Path

      September 5, 2025

      What You Need to Know About CSS Color Interpolation

      September 5, 2025
    • Development
      1. Algorithms & Data Structures
      2. Artificial Intelligence
      3. Back-End Development
      4. Databases
      5. Front-End Development
      6. Libraries & Frameworks
      7. Machine Learning
      8. Security
      9. Software Engineering
      10. Tools & IDEs
      11. Web Design
      12. Web Development
      13. Web Security
      14. Programming Languages
        • PHP
        • JavaScript
      Featured

      Why browsers throttle JavaScript timers (and what to do about it)

      September 6, 2025
      Recent

      Why browsers throttle JavaScript timers (and what to do about it)

      September 6, 2025

      How to create Google Gemini AI component in Total.js Flow

      September 6, 2025

      Drupal 11’s AI Features: What They Actually Mean for Your Team

      September 5, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Harnessing GitOps on Linux for Seamless, Git-First Infrastructure Management

      September 6, 2025
      Recent

      Harnessing GitOps on Linux for Seamless, Git-First Infrastructure Management

      September 6, 2025

      How DevOps Teams Are Redefining Reliability with NixOS and OSTree-Powered Linux

      September 5, 2025

      Distribution Release: Linux Mint 22.2

      September 4, 2025
    • Learning Resources
      • Books
      • Cheatsheets
      • Tutorials & Guides
    Home»News & Updates»CodeSOD: Continuous Installation

    CodeSOD: Continuous Installation

    June 3, 2025

    A recent code-review on a new build pipeline got Sandra‘s attention (previously). The normally responsible and reliable developer responsible for the commit included this in their Jenkinsfile:

    sh '''
    if ! command -v yamllint &> /dev/null; then
    	if command -v apt-get &> /dev/null; then
    	apt-get update && apt-get install -y yamllint
    	elif command -v apk &> /dev/null; then
    	apk add --no-cache yamllint
    	elif command -v pip3 &> /dev/null; then
    	pip3 install --break-system-packages yamllint
    	fi
    fi
    find . -name '*.yaml' -exec yamllint {} \; || true
    find . -name '*.yml' -exec yamllint {} \; || true
    '''
    

    So the goal of this script is to check to see if the yamllint command is available. If it isn’t, we check if apt-get is available, and if it is, we use that to install yamllint. Failing that, we try apk, Alpine’s package manager, and failing that we use pip3 to install it out of PyPI. Then we run it against any YAML files in the repo.

    There are a few problems with this approach.

    The first, Sandra notes, is that they don’t use Alpine Linux, and thus there’s no reason to try apk. The second is that this particular repository contains no Python components and thus pip is not available in the CI environment. Third, this CI job runs inside of a Docker image which already has yamllint installed.

    Now, you’d think the developer responsible would have known this, given that this very merge request also included the definition of the Dockerfile for this environment. They’d already installed yamllint in the image.

    Sandra writes:

    This kind of sloppiness is also wildly out of character for him, to the point where my first thought was that it was AI-generated – especially since this was far from the only WTF in the submitted Jenkinsfile. Thankfully, it didn’t pass code review and was sent back for intensive rework.

    Finally, while the reality is that we’ll always need to resolve some dependencies at build time, things like “tooling” and “linters” really belong in the definition of the build environment, not resolved at build time.

    [Advertisement]
    ProGet’s got you covered with security and access controls on your NuGet feeds. Learn more.

    Source: Read More 

    Facebook Twitter Reddit Email Copy Link
    Previous ArticleScriptorium – write short stories and novels
    Next Article 5 Best Free and Open Source Text Expander Tools

    Related Posts

    News & Updates

    Hitachi Energy Pledges $1B to Strengthen US Grid, Build Largest Transformer Plant in Virginia

    September 5, 2025
    News & Updates

    How to debug a web app with Playwright MCP and GitHub Copilot

    September 5, 2025
    Leave A Reply Cancel Reply

    For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.

    Continue Reading

    Google Fights Back: Appeals Order to Sell Chrome Browser

    Security

    CVE-2025-5990 – Crafty Controller Stored XSS Vulnerability

    Common Vulnerabilities and Exposures (CVEs)

    251 Amazon-Hosted IPs Used in Exploit Scan Targeting ColdFusion, Struts, and Elasticsearch

    Development

    Rolling out Santa without freezing productivity: Tips from securing Figma’s fleet

    Web Development

    Highlights

    Asus echoes Microsoft, says dump Windows 10 for Windows 11 ASAP

    June 1, 2025

    Windows 10’s end-of-support date isn’t a surprise anymore, and after Microsoft’s numerous hints at upgrading…

    Azul significantly cuts down on false positives in Java vulnerability detection with latest update to Azul Intelligence Cloud

    June 10, 2025

    Microsoft announced a new Surface Pro and Surface Laptop as Nintendo’s legal team tried to gut Palworld and the Xbox gaming handheld leaked online

    May 11, 2025

    CVE-2025-2851 – GL.iNet RPC Handler Buffer Overflow

    April 26, 2025
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

    Type above and press Enter to search. Press Esc to cancel.