Search code examples
github-actionscypress

How to use cy.writeFile() in github actions


I am new to cypress and I am using cy.writeFile('cypress/output/xyz.csv',\n${headers},{ flag: 'a+'}) to store data, it is working fine locally when I run through runner or terminal with headless, but when I run this test in github actions, test get passed but its not updating csv file,

can someone please guide what am I missing here and point me to any reference documents to look for solution or correct way to do it ?

Thanks

tried to search options from online and other source but no luck yet


Solution

  • You can write back artifacts to the repo with stefanzweifel/git-auto-commit-action.

    Add a new job or step after your call to Cypress run...

    name: Testing
    on: [push]
    jobs:
      cypress-run:
        runs-on: ubuntu-20.04
        steps:
          - name: Checkout
            uses: actions/checkout@v2
          - name: Cypress run
            uses: cypress-io/github-action@v6
          - name: Commit xyz.csv
            uses: stefanzweifel/git-auto-commit-action@v4
            with:
              commit_message: Updated xyz.csv
              branch: main
              file_pattern: xyz.csv
    

    The full list of options are:

    - uses: stefanzweifel/git-auto-commit-action@v5
      with:
        # Optional. Commit message for the created commit.
        # Defaults to "Apply automatic changes"
        commit_message: Automated Change
    
        # Optional. Local and remote branch name where commit is going to be pushed
        #  to. Defaults to the current branch.
        #  You might need to set `create_branch: true` if the branch does not exist.
        branch: feature-123
    
        # Optional. Options used by `git-commit`.
        # See https://git-scm.com/docs/git-commit#_options
        commit_options: '--no-verify --signoff'
    
        # Optional glob pattern of files which should be added to the commit
        # Defaults to all (.)
        # See the `pathspec`-documentation for git
        # - https://git-scm.com/docs/git-add#Documentation/git-add.txt-ltpathspecgt82308203
        # - https://git-scm.com/docs/gitglossary#Documentation/gitglossary.txt-aiddefpathspecapathspec
        file_pattern: '*.php src/*.js tests/*.js'
    
        # Optional. Local file path to the repository.
        # Defaults to the root of the repository.
        repository: .
    
        # Optional commit user and author settings
        commit_user_name: My GitHub Actions Bot # defaults to "github-actions[bot]"
        commit_user_email: my-github-actions-bot@example.org # defaults to "41898282+github-actions[bot]@users.noreply.github.com"
        commit_author: Author <actions@github.com> # defaults to "username <username@users.noreply.github.com>", where "username" belongs to the author of the commit that triggered the run
    
        # Optional. Tag name being created in the local repository and 
        # pushed to remote repository and defined branch.
        tagging_message: 'v1.0.0'
    
        # Optional. Option used by `git-status` to determine if the repository is 
        # dirty. See https://git-scm.com/docs/git-status#_options
        status_options: '--untracked-files=no'
    
        # Optional. Options used by `git-add`.
        # See https://git-scm.com/docs/git-add#_options
        add_options: '-u'
    
        # Optional. Options used by `git-push`.
        # See https://git-scm.com/docs/git-push#_options
        push_options: '--force'
        
        # Optional. Disable dirty check and always try to create a commit and push
        skip_dirty_check: true    
        
        # Optional. Skip internal call to `git fetch`
        skip_fetch: true    
        
        # Optional. Skip internal call to `git checkout`
        skip_checkout: true
    
        # Optional. Prevents the shell from expanding filenames. 
        # Details: https://www.gnu.org/software/bash/manual/html_node/Filename-Expansion.html
        disable_globbing: true
    
        # Optional. Create given branch name in local and remote repository.
        create_branch: true