-
Notifications
You must be signed in to change notification settings - Fork 347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inconsistent cypress runs between github action and cypress dashboard #124
Comments
GitHub status checks will trigger differently for CI providers that utilize "Pull Requests builds". Pull request builds are generated by the CI provider (if configured) by merging the head branch with the base branch specified in the pull request (in your case - master). These are helpful in answering the question “What if this PR merged into target (base) branch”. You'll often see the commit message for the associated build look something like "Merge 2f5a7afe97740f99f5c4f5e40a3d7347bc058b30 into 1f40d78961e5d268ac072dca86176f9fb2aa7b13". These types of builds trigger Cypress's GitHub status checks notated with the note If your build also runs the action against its current branch (without the generated merge 'pull request build') you would see 2 events triggered from Cypress since there are 2 actions being run. I'm a bit unsure about whether you are saying this happens on every single PR or whether this only triggers 2 events when you 'rerun' your action. Could you clarify? |
Thank you for your answer!
I get the 1st merge event when I open the pull request and the 2nd event only when I rerun the PR. I'd have expected it to rerun as the 1st event. |
@jennifer-shehane is it possible to specify custom message, or point Cypress to proper commit sha? As I understand by default it takes |
@godban We use these environment variables to display the information in the Dashboard https://on.cypress.io/continuous-integration#Git-information So, if you have some way to overwrite this when GitHub auto creates a merge commit - then you could pass that (I'm not sure if this is possible). |
@jennifer-shehane no, this will lead to unexpected behaviour even if possible. |
I have looked at what is going on by opening bahmutov/cypress-gh-action-example#14 The workflow is running both on push (commit) and on pull_request events
You can see the Dashboard at https://dashboard.cypress.io/projects/yz8qku and filter by tags since I pass the event name as a tag - name: Cypress run on ${{ github.event_name }}
uses: cypress-io/github-action@v2
with:
record: true
group: merge
tag: ${{ github.event_name }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} Every commit with open pull request thus triggers 2 events = 2 action runs For example here in GH Actions we see Here is what our Dashboard shows in this case Build 164 is the recording of the "push" event, has the expected title from the commit "print" and is ok. Build 162 is the recording of the "pull_request" event, and it uses the default commit title created by GitHub (merge commit A into B), and this is what we would like to change. When we look closely at the build 162, its commit also is not as nice as it could be which leads to the merge commit and not to the pull request SolutionTo me the largest problem is the commit message for pull request. Thus a good solution is to set it for pull requests as an environment variable to overwrite the Git information. You can find the file at https://github.com/bahmutov/cypress-gh-action-example/blob/master/.github/workflows/merge.yml and here is the relevant portion - name: Cypress run on ${{ github.event_name }}
uses: cypress-io/github-action@v2
with:
record: true
group: merge
# tag will be either "push" or "pull_request"
tag: ${{ github.event_name }}
env:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# - if the event is push, the title will be undefined
# and Cypress will get the commit message from Git information
# - if the event is pull_request, then we set the commit
# message to the pull request title
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }} The Dashboard shows then: "push" event shows the commit's subject line. |
@bahmutov alright, it works. Thank you! |
@bahmutov Thanks for this solution that fixes the dashboard labels, but it breaks the PR comments on github. After applying this solution to my project I don't have cypress bot comments on my PR, after removing the Any idea on how to keep both of those features working ? |
Checking to see if there have been any updates on this issue as I experienced the same thing as @eliasplatekdkt. The solution @bahmutov provided worked for the title but broke all Cypress status updates to the PR in question. It would be great to configure this option with more nuance, somehow. The current title displayed from the screenshots already posted is not only overly verbose but somewhat unhelpful as to the context of the run. |
@eplatek-safyr Try adding Depending on your setup, it could look something like this:
|
@bahmutov's solution above (which does successfully update the commit message) not only breaks Cypress bot comments as @eplatek-safyr points out, but it also prevented status checks that I had configured in my parallelized workflows from ever running. The solution above of adding |
@mellis481 I am currently investigating |
@mellis481 After some testing, |
@conversaShawn I'm confused why you say |
Hi 👋
I've recently updated my cypress github workflow to run only on pull_requests against the master branch instead of push events and I'm seeing a weird side effect when opening a new Pull Requests and re-running the cypress job:
default-group (merge)
and the title of the run contains the commit hash of my head branch and the HEAD commit hash of the master branch we're merging into.default-group
and the title of the runIt looks like Cypress Dashboard is somehow capturing 2 different events on the same github ci run (from the same workflow file). I'm pretty convinced that my update to run cypress only on
pull_request
events triggered.Am I doing something wrong?
Here's a screenshot of the pull requests checks:
Here's my Github Workflow file:
The text was updated successfully, but these errors were encountered: