Githubからグリッチへの私の配備を自動化すること


プログラマは自動化を愛する何度も何度も行う必要がありますか?自動化!私が自動化するために働いていたこれらのタスクのうちの1つはGitTubからグリッチまでコードを展開しています.これが私の最新のプロセスです.それは進行中の仕事です、しかし、それをチェックして、私にあなたが何を考えるかについて知らせさせてください.

なぜgituubグリッチ?
グリッチは、書き込みと完全なスタックのアプリをオンラインでテストするための素晴らしいツールです.しかし、私はまた、特に私がチームで働いているとき、コードレビューのためのGithubのツールが好きです.私の理想的な流れはグリッチリミックスに取り組むことです、GitTubにプッシュしてください、そして、私のチームと批評して、主なグリッチプロジェクトに配備してください.
これは、一度グリッチアプリを推進している重要です.ユーザーが積極的にそれを見て、それをリミックスする間、私はスターターDisordを編集して、テストしたくありません.
私のオリジナルソリューションはProbotでした.GitTubからコードをインポートするグリッチAPIを使用しました.問題はグリッチAPIはパブリックではありません.それは私たちがそれを使用して独自のツールを構築することをお勧め安定したポイントではありません.私はいくつかのAPIの変更は、私が使用していたエンドポイントにパイプラインを下って来ていた知っていた.私がもうそれを使うことができないので、私は新しい解決を必要としました.
完全な警告:これは不可解な禁断のIT知識を使用する概念の証明です.そして、私はGitでそれさえ上手でありません.あなた自身の裁量で使用してください.より多くの知識の人々歓迎からのフィードバック.

Gitは、救出にフックします?
グリッチプロジェクトはそれぞれ独自のGitレポを持っているので、私はその代わりにそれを使用できるかどうか疑問に思った.私は、レポ活動に応じていくつかの行動を自動化することができるGitフックと呼ばれる何かがあるということを知っていました.しかし、私は前に彼らを決して使わなかったでしょう.
reading時間のカップルと後でテストして、私はマスター・ブランチにどんな新しいコードも展開する作業プロトタイプを持っていました.
しかし、それは方程式のgithub部分を解決しませんでした.そのために、私は新しい何かを試みることに決めました:Github行動.私はdocsを読んで、git-sync by weiで決める前に、カップルを試みました.私はいくつかのランダムなバグを主に私を把握するために数時間かかった認証を扱っていた.

ワークフロー
更新したいとしましょう.私は人々がそれを使っている間、直接編集したくないので、
  • はグリッチ
  • でそれをリミックスします
  • 私の編集を行い、新しい支店
  • にそれらをコミットします
  • は、ギタブレポ
  • に新しい支店を押します
    私がマスターに新しい支店のためにPRをつくるGithubレポの
  • そして、私のチームと私は、変化
  • をチェックします
    承認される
  • 、我々は
  • を合併します
    ここでオートメーションが始まるところです
  • マージは、Githubアクション
  • を引き起こします
  • ギタブアクションは、メイングリッチアプリ
  • のGitレポにコードをプッシュします
    主なグリッチAPPのGIT Repoがそれを受けるとき、
  • がそれをGitフック
  • を引き起こします
  • GITフックは、すべての現在のコードを新しいコード
  • に置き換えます

    ハウツーとスタイル
    ちょうどこれがあなたのグリッチプロジェクトのどんなコードでも拭いて、Githubからコードでそれを置き換えると警告するので、注意してください!
    必要です.
  • コードが
  • に展開するグリッチプロジェクト
  • コードが
  • から展開するそのプロジェクトのための公共のgithub repo

    ステップ1:グリッチターミナル
  • はグリッチターミナル
  • に行きます
  • は、git config receive.denyCurrentBranch ignoreを走らせます
  • お気に入りのテキストエディタを使用して端末でGiTookを作成します.私はvimをvim .git/hooks/post-receiveを使用しました
  • このbashスクリプトをフックに入れます.
  • #!/bin/bash
    unset GIT_INDEX_FILE
    git --work-tree=/app  --git-dir=/app/.git checkout -f
    
  • フック実行許可をchmod +x .git/hooks/post-receive

  • ステップ2:Githubの秘密を作成する
  • あなたのグリッチプロジェクトに戻り、ツールをクリックします.
  • コピーYour project's Git URL:は、それを秘密にしておくために、Authトークンを含みます!
  • それがあなたのgithubレポと「秘密」セクションへの秘密の頭である時から、
  • は全体のものを新しい秘密にペーストして、それをglitch_git_URLと命名します

  • ステップ3 : Githubアクションを作成する
    アクションに頭を
  • 頭とワークフローを設定するから
  • これはあなたの秘密とGit同期アクションを使用するためのコードです.SOURCE_REPOの値をhttps - github URL ( https://github.com/glitchdotcom/devto.gitなど)に置き換えます.
  • on: 
     pull_request:
      types: [closed] 
    jobs:
      repo-sync:
        if: github.event.pull_request.merged == true
        runs-on: ubuntu-latest
        steps:
        - name: repo-sync
          uses: wei/git-sync@v1
          env:
            SOURCE_REPO: "https://github.com/glitchdotcom/devto.git"
            SOURCE_BRANCH: "master"
            DESTINATION_REPO: ${{ secrets.glitch_git_URL }}
            DESTINATION_BRANCH: "master"
          with:
            args: $SOURCE_REPO $SOURCE_BRANCH $DESTINATION_REPO $DESTINATION_BRANCH
    
    

    ステップ4:それをテスト!
    今すぐ魔法の瞬間.とにかくあなたのGithubコードを更新します.そして、それを見るために行動をクリックしてください.アクション.

    未来?
    これで、Githubから自動展開を設定する方法を知っています.あなたが十分に興味があるならば、我々はすべてのそれらのステップを自動化する方法をセットアップするかもしれません.オートメーションより良い何かがあるならば、オートメーションのオートメーションです.今のところ、それを試してみて、あなたが何を考えるかをお知らせください!