I wrote a simple Action that should be triggered only after push in a specific branch named "develop".
name: Develop
on:
push:
branches:
- 'develop'
jobs:
my-job:
runs-on: ubuntu-latest
steps:
- name: run curl command
run: curl -X POST "https://<site>"
As I read, the action .yaml file must be only in master branch and so it is.
I expect from this action to be only be triggered for any push to a brach named develop.
In practice, no action is triggered when I push to develop.
If I change -'develop' to -'master' and push to master branch, I see the action is being triggered.
Related
I have GitHub repository with 2 branches: "master" & "develop".
The workflow for us is that any code should be committed to the "develop" branch then pushed to GitHub, then a Pull Request should be created to merge the commits into the "master" branch.
I am trying to write an Action that will create a Pull Request once a developer pushes commits to the branch "develop" and had the following script:
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Create Pull Request
uses: peter-evans/create-pull-request#v2
with:
commit-message: update master branch
title: Update master branch
branch: develop
I can see that this action has executed successfully on "Push" event of the "develop" branch, but I can't see any new Pull Requests!
I checked the logs for the action and found these lines at the end of pull request creation:
Pushing pull request branch to 'origin/develop'
Branch 'develop' no longer differs from base branch 'master'
Closing pull request and deleting branch 'develop'
It seems I am missing something, but couldn't figure it out.
Any help is appreciated.
If you look at the documentation of the create-pull-request action, it mentions that
Create Pull Request action will:
Check for repository changes in the Actions workspace. This includes:
untracked (new) files
- tracked (modified) files
- commits made during the workflow that have not been pushed
Commit all changes to a new branch,
or update an existing pull request branch.
Create a pull request to
merge the new branch into the base—the branch checked out in the
workflow.
It would always need an intermediary branch where it can commit the changes.
So if you modify your workflow config as below, adding the Reset master branch step to get the latest changes from the remote develop branch and reset the master branch, and specify branch: temp for the action, the workflow would create a temp branch with the same commits that you have pushed to develop branch and open a PR from temp to master branch. In subsequent commits to develop, it would keep on making the same changes to temp branch and open a PR similarly or update the existing PR.
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Reset master branch
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
uses: peter-evans/create-pull-request#v4
with:
commit-message: update master branch
title: Update master branch
branch: temp
delete-branch: true
assignees: user-you-want-to
reviewers: user-you-want-to
Note that the temp branch will have the exact commits that are pushed to the develop branch.
PR without intermediate branch
Replace
team-you-want-to
or
user-you-want-to
with team or user you want assign if needed, if not comment them.
name: Create pull request
on:
push:
branches:
- develop
jobs:
reatePullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Get latest changes
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request#v4
with:
commit-message: Update master
committer: GitHub <noreply#github.com>
author: ${{ github.actor }} <${{ github.actor }}#users.noreply.github.com>
signoff: false
branch: develop
title: 'Updating master'
labels: |
update
reviewers: user-you-want-to
team-reviewers: |
team-you-want-to
draft: false
I have build a github action, which config as
name: clock-in
on:
workflow_dispatch:
push:
paths:
- 'src/github/log/*'
jobs:
clock-in:
runs-on: ubuntu-latest
steps:
- ...
- run: ./src/github/push.sh
and the push.sh
#! /bin/bash
remote_repo="https://${GITHUB_ACTOR}:${GH_TOKEN}#github.com/${GITHUB_REPOSITORY}.git" # remote repo address
git config user.email "41898282+github-actions[bot]#users.noreply.github.com"
git config user.name "GitHub Actions"
git add .
git commit -m "update clockin log 😎"
git push
I wish that the github action can be triggered when 'src/github/log/*' file changed and pushed. however, when I make a push, it work normally, but when github action push the change, the new acion is not triggered. How I can make the action triggered when the push comes from github action
My build_and_test.yml file in .github/workflows is as follows:
name: CI
on:
push:
branches:
- main
- name-of-my-branch
pull_request:
branches:
- main
jobs:
build:
# Code to build
However, when I push to any branch other than the main branch, the build doesn't trigger. Any ideas why this might be?
I realized that this Github Actions file was on the main branch, and Github uses the actions that are configured for the branch that is getting pushed. It doesn't do anything if name-of-my-branch has different on: push: branches: specified in its .github/workflows/build_and_test.yml. So branches: name-of-my-branch in the main branch is a bit deceptive - a build-on-push will only occur if that branch is specified under push in its own .yml.
I pulled from main to name-of-my-branch to update the build_and_test.yml, pushed, and the build was triggered.
I have GitHub repository with 2 branches: "master" & "develop".
The workflow for us is that any code should be committed to the "develop" branch then pushed to GitHub, then a Pull Request should be created to merge the commits into the "master" branch.
I am trying to write an Action that will create a Pull Request once a developer pushes commits to the branch "develop" and had the following script:
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Create Pull Request
uses: peter-evans/create-pull-request#v2
with:
commit-message: update master branch
title: Update master branch
branch: develop
I can see that this action has executed successfully on "Push" event of the "develop" branch, but I can't see any new Pull Requests!
I checked the logs for the action and found these lines at the end of pull request creation:
Pushing pull request branch to 'origin/develop'
Branch 'develop' no longer differs from base branch 'master'
Closing pull request and deleting branch 'develop'
It seems I am missing something, but couldn't figure it out.
Any help is appreciated.
If you look at the documentation of the create-pull-request action, it mentions that
Create Pull Request action will:
Check for repository changes in the Actions workspace. This includes:
untracked (new) files
- tracked (modified) files
- commits made during the workflow that have not been pushed
Commit all changes to a new branch,
or update an existing pull request branch.
Create a pull request to
merge the new branch into the base—the branch checked out in the
workflow.
It would always need an intermediary branch where it can commit the changes.
So if you modify your workflow config as below, adding the Reset master branch step to get the latest changes from the remote develop branch and reset the master branch, and specify branch: temp for the action, the workflow would create a temp branch with the same commits that you have pushed to develop branch and open a PR from temp to master branch. In subsequent commits to develop, it would keep on making the same changes to temp branch and open a PR similarly or update the existing PR.
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Reset master branch
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
uses: peter-evans/create-pull-request#v4
with:
commit-message: update master branch
title: Update master branch
branch: temp
delete-branch: true
assignees: user-you-want-to
reviewers: user-you-want-to
Note that the temp branch will have the exact commits that are pushed to the develop branch.
PR without intermediate branch
Replace
team-you-want-to
or
user-you-want-to
with team or user you want assign if needed, if not comment them.
name: Create pull request
on:
push:
branches:
- develop
jobs:
reatePullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Get latest changes
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request#v4
with:
commit-message: Update master
committer: GitHub <noreply#github.com>
author: ${{ github.actor }} <${{ github.actor }}#users.noreply.github.com>
signoff: false
branch: develop
title: 'Updating master'
labels: |
update
reviewers: user-you-want-to
team-reviewers: |
team-you-want-to
draft: false
I have GitHub repository with 2 branches: "master" & "develop".
The workflow for us is that any code should be committed to the "develop" branch then pushed to GitHub, then a Pull Request should be created to merge the commits into the "master" branch.
I am trying to write an Action that will create a Pull Request once a developer pushes commits to the branch "develop" and had the following script:
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Create Pull Request
uses: peter-evans/create-pull-request#v2
with:
commit-message: update master branch
title: Update master branch
branch: develop
I can see that this action has executed successfully on "Push" event of the "develop" branch, but I can't see any new Pull Requests!
I checked the logs for the action and found these lines at the end of pull request creation:
Pushing pull request branch to 'origin/develop'
Branch 'develop' no longer differs from base branch 'master'
Closing pull request and deleting branch 'develop'
It seems I am missing something, but couldn't figure it out.
Any help is appreciated.
If you look at the documentation of the create-pull-request action, it mentions that
Create Pull Request action will:
Check for repository changes in the Actions workspace. This includes:
untracked (new) files
- tracked (modified) files
- commits made during the workflow that have not been pushed
Commit all changes to a new branch,
or update an existing pull request branch.
Create a pull request to
merge the new branch into the base—the branch checked out in the
workflow.
It would always need an intermediary branch where it can commit the changes.
So if you modify your workflow config as below, adding the Reset master branch step to get the latest changes from the remote develop branch and reset the master branch, and specify branch: temp for the action, the workflow would create a temp branch with the same commits that you have pushed to develop branch and open a PR from temp to master branch. In subsequent commits to develop, it would keep on making the same changes to temp branch and open a PR similarly or update the existing PR.
name: Create pull request
on:
push:
branches:
- develop
jobs:
prForMasterBranch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Reset master branch
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
uses: peter-evans/create-pull-request#v4
with:
commit-message: update master branch
title: Update master branch
branch: temp
delete-branch: true
assignees: user-you-want-to
reviewers: user-you-want-to
Note that the temp branch will have the exact commits that are pushed to the develop branch.
PR without intermediate branch
Replace
team-you-want-to
or
user-you-want-to
with team or user you want assign if needed, if not comment them.
name: Create pull request
on:
push:
branches:
- develop
jobs:
reatePullRequest:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout#v2
with:
ref: master
- name: Get latest changes
run: |
git fetch origin develop:develop
git reset --hard develop
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request#v4
with:
commit-message: Update master
committer: GitHub <noreply#github.com>
author: ${{ github.actor }} <${{ github.actor }}#users.noreply.github.com>
signoff: false
branch: develop
title: 'Updating master'
labels: |
update
reviewers: user-you-want-to
team-reviewers: |
team-you-want-to
draft: false