ci-cd

  • Static analysis on a codebase that has never had any

    Four thousand errors on the first run is a number nobody can act on. Starting at level 0, ignoring by pattern, and raising the floor one level at…

  • The asset pipeline Laravel 5.4 shipped

    Elixir wrapped gulp, which wrapped everything else. Mix wraps webpack directly — and leaves the configuration reachable when the abstraction runs out.

  • Multi-stage builds arrived in 17.05

    Building assets inside the runtime image drags a compiler toolchain into production, and deleting it afterwards does nothing because layers are additive. Until May the workaround was two…

  • phpunit.xml groups let CI split the suite

    A suite that takes twenty minutes gets run less often, which is the opposite of what it is for. Groups let the fast tests gate every push and…

  • A deploy that is nothing but a symlink swap

    Copying files into the live directory means the site serves a half-updated tree for the duration — new templates against old classes, for as long as the copy…

  • composer validate belongs in CI

    A composer.json edited by hand and a lock file regenerated on a different machine drift apart quietly, and the first symptom is usually a deploy installing something nobody…

  • A deployment pipeline that runs the tests first

    Deploying by rsync on a Friday afternoon, and what replaced it: lint, test, build, stage, promote — with a rollback that is the same mechanism rather than a…

  • Docker for Mac replaced the virtual machine

    The shared-folder problem that nearly killed this last year is gone. What changes in the compose file, what the new file sharing costs, and where Linux and Mac…

  • The CI box gets its own deploy key, and it is read-only

    Giving CI a copy of a developer’s key, or an account with write access, means a compromised build server can push to the repository — and a build…

  • Certificates that renew themselves

    Free certificates went GA this month. Automating issuance and renewal, the rate limits that catch staging first, and the monitoring that has to outlive the automation.