Git Product home page Git Product logo

Comments (4)

Ryuno-Ki avatar Ryuno-Ki commented on August 15, 2024 1

I haven't found good CI support for a concept of a warning that lets you continue the build, but collect all the warnings for a report that can be acted upon, so for now I think the manual audit is the way to go for external links to avoid getting your CI pipeline blocked

Since @khoivan88 brought that topic up in the 11ty Discord before, let me chime in :-)

Alternatively to failling external links, wouldn't it be possible to mark them as skipped? This way, there could be a list of „skipped” tests, which could act as a list of external links to check.
(I'm using https://www.screamingfrog.co.uk/seo-spider/ for semi-automated manual checks, but 500 limit is hard).
Ideally, I'd expect a plain text with a link per line.

Although, knowing which page contained that link could be helpful if I want to fix it.
I'm not only interested in 4xx or 5xx but also in 301 (Moved Permanently) or similar.

from hyperlink.

Munter avatar Munter commented on August 15, 2024 1

@Ryuno-Ki In TAP semantics SKIP means that the test should never be run in the first place. Hyperlink honors this by not even making the request. This is the feature you want to use to speed up your tests if you don't care about the result.

What @khoivan88 did with marking a test as TODO is the correct way to get the behavior you describe. The test will be run, the request is made, but any FAIL will be marked as TODO. Again, the problem here is that you need to manually inspect the CI output because no CI service that I'm aware of picks up on those TAP semantics. They all just rely on exit codes, which are quite binary.

I am definitely interested in finding a way where the external link check can be made useful as a CI task. But I think it would require some sort of report gathering and then having o pipe it to a different command that submits a webhook, or something along those lines. I feel that sort of work is a never-ending scope explosion, which doesn't overlap much with the core hyperlink functionality.

If you want to change the output from hyperlink you can do so with a custom TAP reporter. This is one of the reasons I chose this format. You could use such a reporter as a filter to get just the TODO's. Here's where I make decisions on test statuses in tap-spot: https://github.com/Munter/tap-spot/blob/master/index.js#L48-L63

Hyperlink does indeed report linking to a permanent redirect (301) as a failure

from hyperlink.

Munter avatar Munter commented on August 15, 2024

I think I would recommend never to check external links in your build process, using the -i flag as you already have.

For the external lin check I would recommend to run it as a manual audit once in a while, not marking them as TODO, but just letting them fail.

I haven't found good CI support for a concept of a warning that lets you continue the build, but collect all the warnings for a report that can be acted upon, so for now I think the manual audit is the way to go for external links to avoid getting your CI pipeline blocked

from hyperlink.

khoivan88 avatar khoivan88 commented on August 15, 2024

thank you very much for your answer!!

from hyperlink.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.