Triggering pipeline on commit and weekly

I’m new to Concourse and am trying to understand what the correct way is to set up a pipeline that is both triggered on every Git commit and every week at a certain time?

I thought it would be to have the git & time resource as triggers, but this means that the pipeline won’t run until it is within the window configured on the time resource, as the time resource won’t return any versions.

Doesn’t this mean that, unlike having two Git resources which would trigger the pipeline if either identified a new version, a time resource behaves like it is ANDing itself with the other resources?

When a job tries to run, it will attempt to find any valid versions of each resource. This doesn’t have to mean a new version and I don’t think the time resource only returns version during a window (resources can’t do this as once a version is discovered it is considered always discovered). So if I had a timer resource that triggered e.g. every Monday morning and a new git commit was made on Thursday, the job would trigger and the version of the timer resource would be the one from last Monday.

I think your plan of git & time resource as triggers should work just fine in this situation. One slight gotcha of the timer resource though is that it will only discover a first version on the first e.g. Monday morning so your jobb may not trigger as you expect first time. Once there is a valid version of the timer resource though it should work as expected.

I think that gotcha is the problem - having to wait for up to a week while no builds are triggered from Git commits. The cron resource (https://github.com/pivotal-cf-experimental/cron-resource) has fire_immediately which might mean that it could accomplish the same thing but won’t block the pipeline for a week.