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

      The Case For Minimal WordPress Setups: A Contrarian View On Theme Frameworks

      June 6, 2025

      How To Fix Largest Contentful Paint Issues With Subpart Analysis

      June 6, 2025

      How To Prevent WordPress SQL Injection Attacks

      June 6, 2025

      In MCP era API discoverability is now more important than ever

      June 5, 2025

      Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

      June 6, 2025

      Reddit wants to sue Anthropic for stealing its data, but the Claude AI manufacturers vow to “defend ourselves vigorously”

      June 6, 2025

      Satya Nadella says Microsoft makes money every time you use ChatGPT: “Every day that ChatGPT succeeds is a fantastic day”

      June 6, 2025

      Multiple reports suggest a Persona 4 Remake from Atlus will be announced during the Xbox Games Showcase

      June 6, 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

      TC39 advances numerous proposals at latest meeting

      June 6, 2025
      Recent

      TC39 advances numerous proposals at latest meeting

      June 6, 2025

      TypeBridge – zero ceremony, compile time rpc for client and server com

      June 6, 2025

      Simplify Cloud-Native Development with Quarkus Extensions

      June 6, 2025
    • Operating Systems
      1. Windows
      2. Linux
      3. macOS
      Featured

      Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

      June 6, 2025
      Recent

      Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

      June 6, 2025

      Reddit wants to sue Anthropic for stealing its data, but the Claude AI manufacturers vow to “defend ourselves vigorously”

      June 6, 2025

      Satya Nadella says Microsoft makes money every time you use ChatGPT: “Every day that ChatGPT succeeds is a fantastic day”

      June 6, 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

    Black Myth: Wukong is coming to Xbox exactly one year after launching on PlayStation

    June 6, 2025
    News & Updates

    Reddit wants to sue Anthropic for stealing its data, but the Claude AI manufacturers vow to “defend ourselves vigorously”

    June 6, 2025
    Leave A Reply Cancel Reply

    Continue Reading

    Roborock’s new robot vacuum has a mechanical arm to move obstacles – and you have to see it

    Development

    One of the best cheap robot vacuums I’ve tested is not made by Eufy or iRobot

    Development

    CVE-2025-37983 – Linux kernel qibfs Dentry Leak

    Common Vulnerabilities and Exposures (CVEs)

    Ghostty – feature-rich and cross-platform terminal emulator

    Development

    Highlights

    Jaeger – distributed tracing system

    February 25, 2025

    Jaeger is a distributed tracing platform which lets you monitor and troubleshoot distributed workflows. The…

    Understanding AI Agents: A Comprehensive Guide

    December 7, 2024

    CVE-2025-4767 – Defog-ai Introspect Code Injection Vulnerability

    May 16, 2025

    Black Screen after Disk Cleanup: 5 Ways to Fix it

    July 2, 2024
    © DevStackTips 2025. All rights reserved.
    • Contact
    • Privacy Policy

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