Skip to content

Enforced deployment order and rebasing fails #492

Description

@johnseekins

Describe the Issue

A user was working on a PR and rebased the PR. Afterwards, they can only deploy to the "first" environment in our enforced order. When not using rebase configs, things seems to work okay, so I'm suspicious that using rebase affects the way enforced order reads commit shas/oids.

Action Configuration

    - uses: github/branch-deploy@f0984057ffe1aa340aa017b6eafb894310aed88e  # 12.0.0
       if: "steps.detect.outputs.services-found == 'true'"
       id: branch-deploy
       with:
         stable_branch: main
         environment_targets: test,staging,uat,prod
         enforced_deployment_order: test,staging,uat,prod
         # default deployment environment
         environment: test
         production_environments: uat,prod
         # allow deploys to test/staging without approvals
         draft_permitted_targets: test,staging
         skip_reviews: test,staging
         checks: required
         # we unlock manually in our last step below, so we disable auto-completing
         skip_completing: true
         sticky_locks: false
         allow_forks: false
         use_security_warnings: false

Relevant Actions Log Output

Working deploy (to test):

Run github/branch-deploy@f0984057ffe1aa340aa017b6eafb894310aed88e
  with:
    stable_branch: main
    environment_targets: test,staging,uat,prod
    enforced_deployment_order: test,staging,uat,prod
    environment: test
    production_environments: uat,prod
    draft_permitted_targets: test,staging
    skip_reviews: test,staging
    checks: required
    skip_completing: true
    sticky_locks: false
    allow_forks: false
    use_security_warnings: false
    github_token: ***
    status: success
    environment_url_in_comment: true
    reaction: eyes
    trigger: .deploy
    noop_trigger: .noop
    lock_trigger: .lock
    unlock_trigger: .unlock
    help_trigger: .help
    lock_info_alias: .wcid
    permissions: write,admin
    commit_verification: false
    param_separator: |
    global_lock_flag: --global
    update_branch: warn
    outdated_mode: strict
    required_contexts: false
    admins: false
    admins_pat: false
    merge_deploy_mode: false
    unlock_on_merge_mode: false
    deploy_message_path: .github/deployment_message.md
    sticky_locks_for_noop: false
    disable_lock: false
    allow_sha_deployments: false
    disable_naked_commands: false
    skip_successful_noop_labels_if_approved: false
    skip_successful_deploy_labels_if_approved: false
    allow_non_default_target_branch_deployments: false
    deployment_confirmation: false
    deployment_confirmation_timeout: 60
🛸 github/branch-deploy v12.0.0
✅ comment body starts with trigger: .deploy
🌍 environment: test
✅ branch exists: dev-4836
✅ CI checks passed and required reviewers have been disabled for this environment
🔑 commit signature is valid
🚦 deployment order is enforced
🚦 deployment order checks passed as test is the first environment in the enforced deployment order
🍯 sticky_locks: false
🍯 sticky_locks_for_noop: false
🔒 created lock branch: test-branch-deploy-lock
✅ deployment lock obtained
📓 deployment id: 5800816457
🧑‍🚀 commit sha to deploy: ce1aca500c557da31843fb7d68a01ef137a3aa5e
🚀 deployment started!

Failed deploy (to staging):

Run github/branch-deploy@f0984057ffe1aa340aa017b6eafb894310aed88e
  with:
    stable_branch: main
    environment_targets: test,staging,uat,prod
    enforced_deployment_order: test,staging,uat,prod
    environment: test
    production_environments: uat,prod
    draft_permitted_targets: test,staging
    skip_reviews: test,staging
    checks: required
    skip_completing: true
    sticky_locks: false
    allow_forks: false
    use_security_warnings: false
    github_token: ***
    status: success
    environment_url_in_comment: true
    reaction: eyes
    trigger: .deploy
    noop_trigger: .noop
    lock_trigger: .lock
    unlock_trigger: .unlock
    help_trigger: .help
    lock_info_alias: .wcid
    permissions: write,admin
    commit_verification: false
    param_separator: |
    global_lock_flag: --global
    update_branch: warn
    outdated_mode: strict
    required_contexts: false
    admins: false
    admins_pat: false
    merge_deploy_mode: false
    unlock_on_merge_mode: false
    deploy_message_path: .github/deployment_message.md
    sticky_locks_for_noop: false
    disable_lock: false
    allow_sha_deployments: false
    disable_naked_commands: false
    skip_successful_noop_labels_if_approved: false
    skip_successful_deploy_labels_if_approved: false
    allow_non_default_target_branch_deployments: false
    deployment_confirmation: false
    deployment_confirmation_timeout: 60
🛸 github/branch-deploy v12.0.0
✅ comment body starts with trigger: .deploy
🌍 environment: staging
✅ branch exists: dev-4836
✅ CI checks passed and required reviewers have been disabled for this environment
🔑 commit signature is valid
🚦 deployment order is enforced
Error: 🚦 deployment order checks failed as test does not have an active deployment at sha: ce1aca500c557da31843fb7d68a01ef137a3aa5e
Error: 🚦 deployment order checks failed as not all previous environments have active deployments: test

Extra Information

Successful deploy message in PR:
Image

Failure with visible environment deploy success:
Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions