Skip to main content

Guide

Monitor a GitLab CI schedule

GitLab runs a scheduled pipeline with its owner's permissions. If that owner is blocked or removed from the project, the schedule can become inactive and stop running. A final heartbeat reports the pipeline that completed.

Start your 14-day free trial No card required. The trial uses Pro limits.
By Paul , published , last verified

The owner who stops the schedule

GitLab runs scheduled pipelines with the permissions of the schedule owner. If that person is blocked or removed from the project, the schedule can change to Inactive and stop creating pipelines. GitLab also stops scheduled pipelines when the project or group is marked for deletion.

A heartbeat cannot repair the schedule. It makes the missing successful pipeline visible to someone who can change the owner or reactivate the schedule.

Add a final CI job

Save the PostDeploy token as a masked CI/CD variable named POSTDEPLOY_HEARTBEAT_TOKEN. Put the heartbeat job in the final stage and require the scheduled work to finish first.

Example shell
stages:
  - report
  - monitor

nightly_report:
  stage: report
  script:
    - ./bin/nightly-report

postdeploy_heartbeat:
  stage: monitor
  needs: [nightly_report]
  script:
    - curl -fsS "https://ingest.postdeploy.dev/h/$POSTDEPLOY_HEARTBEAT_TOKEN"
  rules:
    - if: '$CI_PIPELINE_SOURCE == "schedule"'

Check the schedule owner

Open Build, Pipeline schedules and confirm the schedule is Active and has the intended owner. Run it once manually to confirm the heartbeat, then check the next scheduled pipeline appears. Use a service account or a stable maintainer account where your GitLab policy permits it.

Respond to a missing heartbeat

When PostDeploy alerts, first look for a scheduled pipeline. If none exists, inspect the schedule status and owner. If a pipeline exists but the heartbeat job did not run, inspect the job graph and rules.

Questions

Why did my GitLab pipeline schedule become inactive?

A schedule can become Inactive when its owner is blocked or removed from the project. Scheduled pipelines also stop when GitLab marks the project or group for deletion.

Which permissions does a GitLab scheduled pipeline use?

It runs with the permissions of the user who owns the schedule. Review that owner when a scheduled pipeline changes behaviour after membership changes.

What PostDeploy does not do here

  • PostDeploy does not read GitLab pipeline logs
  • PostDeploy does not change a schedule owner or reactivate a schedule
  • PostDeploy does not trigger a GitLab pipeline

Sources

Links are the platform's own documentation for the failure mode described above.

Monitor this GitLab schedule with PostDeploy

14 days at Pro limits. No card required.

Start your 14-day free trial