最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

How to reuse GitHub workflows for GitLab pipelines or vice versa? - Stack Overflow

programmeradmin0浏览0评论

Unfortunately, GitLab and GitHub use different syntaxes and configurations for their workflow files, so I cannot directly reuse GitHub workflow files in GitLab pipelines.

Are there some plugins/actions etc. or could I use some container to apply existing GitHub workflows for my code in GitLab or vice versa?

Some include syntax or plugin for .gitlab-ci.yml would be great.

include:
  - local: translate_github_workflow_to_gitlab('.github/lint.yml')

Or is there some common workflow syntax that is supported by both platforms?

include:
  - local: '.workflows/job_in_universal_workflow_syntax.yml'

Do you move your logic to custom script files and run them?

Or do you separately implement and maintain your workflows for both platforms?

I have to use GitLab for inhouse development and GitHub for OpenSource projects and would like to avoid doubled work for the automation tasks.

Unfortunately, GitLab and GitHub use different syntaxes and configurations for their workflow files, so I cannot directly reuse GitHub workflow files in GitLab pipelines.

Are there some plugins/actions etc. or could I use some container to apply existing GitHub workflows for my code in GitLab or vice versa?

Some include syntax or plugin for .gitlab-ci.yml would be great.

include:
  - local: translate_github_workflow_to_gitlab('.github/lint.yml')

Or is there some common workflow syntax that is supported by both platforms?

include:
  - local: '.workflows/job_in_universal_workflow_syntax.yml'

Do you move your logic to custom script files and run them?

Or do you separately implement and maintain your workflows for both platforms?

I have to use GitLab for inhouse development and GitHub for OpenSource projects and would like to avoid doubled work for the automation tasks.

Share Improve this question edited Feb 4 at 11:14 Stefan asked Feb 4 at 11:09 StefanStefan 12.4k9 gold badges77 silver badges137 bronze badges 1
  • Don't mix GitLab and GitHub configuration, they are different and independent. – Daniel W. Commented Feb 4 at 11:44
Add a comment  | 

1 Answer 1

Reset to default 1

Both use a different expression language, offer different features etc. So. your main workflow files will need to be unique per platform.

But like you suggested, both platforms can run docker containers and both platforms can execute scripts, so you could move as much as possible out of your workflow files and into these re-usable solutions.

发布评论

评论列表(0)

  1. 暂无评论
ok 不同模板 switch ($forum['model']) { /*case '0': include _include(APP_PATH . 'view/htm/read.htm'); break;*/ default: include _include(theme_load('read', $fid)); break; } } break; case '10': // 主题外链 / thread external link http_location(htmlspecialchars_decode(trim($thread['description']))); break; case '11': // 单页 / single page $attachlist = array(); $imagelist = array(); $thread['filelist'] = array(); $threadlist = NULL; $thread['files'] > 0 and list($attachlist, $imagelist, $thread['filelist']) = well_attach_find_by_tid($tid); $data = data_read_cache($tid); empty($data) and message(-1, lang('data_malformation')); $tidlist = $forum['threads'] ? page_find_by_fid($fid, $page, $pagesize) : NULL; if ($tidlist) { $tidarr = arrlist_values($tidlist, 'tid'); $threadlist = well_thread_find($tidarr, $pagesize); // 按之前tidlist排序 $threadlist = array2_sort_key($threadlist, $tidlist, 'tid'); } $allowpost = forum_access_user($fid, $gid, 'allowpost'); $allowupdate = forum_access_mod($fid, $gid, 'allowupdate'); $allowdelete = forum_access_mod($fid, $gid, 'allowdelete'); $access = array('allowpost' => $allowpost, 'allowupdate' => $allowupdate, 'allowdelete' => $allowdelete); $header['title'] = $thread['subject']; $header['mobile_link'] = $thread['url']; $header['keywords'] = $thread['keyword'] ? $thread['keyword'] : $thread['subject']; $header['description'] = $thread['description'] ? $thread['description'] : $thread['brief']; $_SESSION['fid'] = $fid; if ($ajax) { empty($conf['api_on']) and message(0, lang('closed')); $apilist['header'] = $header; $apilist['extra'] = $extra; $apilist['access'] = $access; $apilist['thread'] = well_thread_safe_info($thread); $apilist['thread_data'] = $data; $apilist['forum'] = $forum; $apilist['imagelist'] = $imagelist; $apilist['filelist'] = $thread['filelist']; $apilist['threadlist'] = $threadlist; message(0, $apilist); } else { include _include(theme_load('single_page', $fid)); } break; default: message(-1, lang('data_malformation')); break; } ?>