ビルド独自の5分でCIを反応!


おい、皆さん!このポストはStewarDXシリーズの紹介の一部です.
このチュートリアルでは、どのようにあなた自身のCIを構築することができます、超簡単に表示されます.
必要なのは
  • StewardX
  • ( Linuxのサーバ( SUDO ACCESSで)
  • ドック
  • NodeJS -もちろん反応の建物のために😊
  • 私のサーバーのOSはDebianのフレーバー(Ubuntu)ですが、迅速な検索によって、あなた自身のディストリビューション用のパッケージのインストールコマンドを見つけることができるはずです.OKここで我々は行く!

    インストールする
    かなり簡単です.nginxがサーバにインストールされていない場合は、以下のコマンドを実行してください.
    $ sudo apt update
    $ sudo apt install nginx
    
    今、あなたはHTTPを介してサーバーにアクセスできるようにする必要がありますhttp://yourserveripそして、あなたはNginxのデフォルトウェルカムページを提示されます.もしそうでなければ、あなたのポートがブロックされていないかどうか確認してください.あなたは次のことができますamazing tutorial by DigitalOcean nginxのポートを設定する.
    注:私は任意のマナーでdoと提携していない、私はちょうど彼らのチュートリアルが好きです.
    完了したら、次のステップに進みます.

    あなたの反応アプリを提供するnginxを設定する
    さて、より詳細な説明については次のことができますthis tutorial on DigitalOcean . しかし、私はあなたがここでそれを構成することができる方法を示しています.
    それを簡単かつ迅速に保つために、私はサーバーブロックをデモすることはありませんが、生産では、それらを使用する必要があります!今のところ、デフォルトのものを使います.
    オープン/etc/nginx/sites-enabled/default お気に入りのエディタで.
    $ sudo nano /etc/nginx/sites-enabled/default
    
    スクロールすると、この特定の行が表示されます.
    root /var/www/html;
    
    OKこの行はnginxが特定のディレクトリにあるファイルを提供することを意味します.それで、我々は我々のビルトインファイルをそこで動かします.必要に応じてディレクトリを変更することができます.動いて!

    建物の反応アプリ
    私は、使用していますdocumentation repository of StewardX デモ目的のため.これは反応アプリも😊
    $ cd
    $ git clone https://github.com/gokayokyay/stewardx-docs
    $ cd stewardx-docs
    $ npm install # or yarn
    
    今私は私のアプリを構築することができます
    $ npm run build # or yarn build
    
    あなたはbuild フォルダが作成されました.すごい!

    StewarDXのインストールと実行
    ヘッドオーバーreleases page of StewardX そして、最新のバイナリをダウンロードしてください.stewardx_${version}_${os}_${arch} . 書き込み時には、最新のバイナリを指定します.stewardx_v0.1.2_linux_x64 . ディレクトリにダウンロードしてください.新しいものを作ります.
    $ cd
    $ mkdir stewardx
    $ cd stewardx
    $ wget https://github.com/gokayokyay/stewardx/releases/download/v0.1.2/stewardx_v0.1.2_linux_x64 -O stewardx
    $ chmod +x stewardx
    
    ベータ版でもないので、ソースからビルドしなければならないかもしれません.Building it from source .
    さて、あなたはStewarDXインスタンスを起動してStewarDXを起動する必要があります.あなたは自由な1を得ることができるか、走ることによってあなた自身を始めることができます:
    docker run --rm -P -p 127.0.0.1:5432:5432 -v "$HOME/postgres-data:/var/lib/postgresql/data" -e POSTGRES_PASSWORD="1234" --name pg postgres:alpine
    
    注:生産のためにこのコマンドを使用しないでください!パスワードは1234です😭
    データベースURLが必要です.上記のコマンドを実行した場合、
    postgresql://postgres:1234@localhost:5432/postgres
    
    あなたがまだ同じディレクトリにいる間、このコマンドを実行してくださいstewardx .
    STEWARDX_DATABASE_URL=postgresql://postgres:1234@localhost:5432/postgres ./stewardx
    
    あなたが出力を見るならば、それは働いていることを意味します!😊

    ビルドスクリプトの作成
    スクリプトの新しいディレクトリを作成します
    $ cd
    $ mkdir ci-scripts
    $ cd ci-scripts
    $ touch react-ci.sh
    $ chmod +x react-ci.sh
    
    お気に入りのエディタでスクリプトを開き、次のペーストを行います.
    #!/bin/bash
    PROJECT_DIR_NAME=stewardx-docs
    PROJECT_GIT_URL=https://github.com/gokayokyay/stewardx-docs
    PROJECT_PARENT=$HOME/
    DEPLOY_DIR=/var/www/html/
    
    ここで変数を定義しました.
    ...
    cd $PROJECT_PARENT
    if [ -d "$PROJECT_PARENT/$PROJECT_DIR_NAME" ] 
    then
        echo "Directory ${PROJECT_DIR_NAME} exists. Skipping git clone..." 
        cd $PROJECT_DIR_NAME
        git stash
        git pull
    else
        echo "Directory ${PROJECT_DIR_NAME} doesn't exists, cloning it..."
        git clone $PROJECT_GIT_URL
        cd $PROJECT_DIR_NAME
    fi
    
    我々は、最新の変更をご利用いただけますプル.ビルド時間
    ...
    echo "Cleaning node_modules for a fresh start!"
    rm -rf node_modules
    echo "Installing the modules..."
    npm install
    
    ドキュメントリポジトリにテストはありませんので、テストコマンドをスキップします.
    ...
    echo "Now building it, this can take a while"
    npm run build
    echo "Cleaning old files in serve directory"
    rm -rf $DEPLOY_DIR/*
    echo "Okay, now moving the artifacts into the serve directory."
    mv build/* $DEPLOY_DIR
    echo "Done."
    
    保存します.
    次のコマンドを実行します.
    $ pwd
    
    そして、次のステップの出力を保存します.
    今すぐスクリプトをテストするには
    ./react-ci.sh
    
    ウェブサイトhttp://yourserverip それが働くならば、現在、それは時間です

    ウェブフックを作る
    出力を得るpwd 前のステップからのコマンド.StewarDXにWebhookを加えるにはどちらかを使うことができますpanel (ビルドする必要があるか、または任意のWebクライアントからリクエストを送信するだけで、curlを使用します.
    curl --header "Content-Type: application/json" -X POST --data '{"task_name": "React app CI", "frequency": "Hook", "task_type": "CmdTask", "task_props": {"command":"/bin/bash #pwd_output#"}}' http://localhost:3000/tasks
    
    前のステップマインから保存された出力で、pwdchen出力してください./root/ci-scripts/react-ci.sh (yupは根、私は危険が好きです)
    このコマンドはidを出力し、最後のステップに保存します.

    GithubからのWebhookの使用
    今、それはギフトブにwebhookを追加する時間です.プロジェクトのリポジトリに移動し、[設定]をクリックします.
    移動するWebhooks 左側パネルからのセクション.クリックAdd webhook ページの上部にあるボタン.ページが開くと、あなたはPayload URL with yourserversurl:STEWARDX_PORT/execute/id_of_your_task , それで、それは何かのように見えるでしょうhttp://mydomain.com:3000/execute/c99ff533-d3c2-4ee3-9b8f-a972a9db00db .
    そして、おめでとう!あなた自身のCIを作成しました!
    StewarDXの詳細についてはhttps://stewardx.dev .
    あなたがフィードバックを残すならば、私は本当に感謝します😊 安全!