0

Such as:
source repo on github Branch master -> destination repo on gitlab Branch main
I'm newbie for github action.
How to design a script entrypoint.sh or new pipeline or example for me, please. Note: sorry, my english not strong.

Workflows: git-repo-sync.yml

name: build

on: 
  - push
  - delete

jobs:
  sync:
    runs-on: ubuntu-latest
    name: Git Repo Sync
    steps:
    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
    - uses: chayanbank/git-sync@main
      with:
        target-url: 'https://gitlab.com/chayanbank/test-react-web.git'
        target-branch: 'main'
        target-username: 'githubsync'
        target-token: ${{ secrets.GITHUBSYNC }}

action.yml

name: 'Git Repo Sync'
description: 'Git Repo Sync enables you to synchronize code to other code management platforms, such as GitLab, Gitee, etc.'

branding:
  icon: upload-cloud
  color: gray-dark

inputs:
  target-url:
    description: 'Target Repo URL'
    required: true
  target-branch:
    description: 'Target Repo Branch'
    required: true
  target-username:
    description: 'Target Repo Username'
    required: true
  target-token:
    description: 'Target Token'
    required: true
runs:
  using: "composite"
  steps:
    - run: ${{ github.action_path }}/entrypoint.sh
      shell: bash
      env:
        INPUT_TARGET_URL: ${{ inputs.target-url }}
        INPUT_TARGET_BRANCH: ${{ inputs.target-branch }}
        INPUT_TARGET_USERNAME: ${{ inputs.target-username }}
        INPUT_TARGET_TOKEN: ${{ inputs.target-token }}
        GITHUB_EVENT_REF: ${{ github.event.ref }}

entrypoint.sh

git remote add target https://${INPUT_TARGET_USERNAME}:${INPUT_TARGET_TOKEN}@${INPUT_TARGET_URL#https://}

case "${GITHUB_EVENT_NAME}" in
    push)
        git push -f --all target 
        git push -f --tags target
        ;;
    delete)
        git push -d target ${GITHUB_EVENT_REF}
        ;;
    *)
        break
        ;;
esac

0 Answers0