PHPアプリケーションのデプロイメントアプリケーションを作成しましたが、これは実際には3つの環境(dev、rc、prod)を管理する簡単なPHPページです。
このページは、最後のコミットに関する情報と各環境についての情報を取得し、開発者がタグを使用して環境のバージョンを変更できるようにします。
バージョンのタグを使用していくつかのアプリケーション(github、packagistなど)が見えましたが、問題が発生しています。
以前は、SVNを使用していましたが、それは非常に簡単で高速でしたので、私はGitに不満を感じています。
私はいくつかのプロジェクトにgitlabとgithubを使用しています。
まず、(1〜6秒)だけgitのリモート要求が非常に遅くなることを注意してください
単純なデプロイメントアプリケーションを作成する際のトラブル
が最後についての情報は、これらの情報を取得するには
をコミット取得し、私はDEV環境をフェッチする必要がありますその後、私はやっている git --no-pager show --name-status --format="__TOKEN__%n%H%n%T%n%P%n%d%n%an%n%ae%n%aD%n%cn%n%ce%n%cD"
ランダムな__TOKEN__を使用して結果を解析していますが、それ以前にもっと情報を追加することはできますが、気にしません。
だから、結果は次のようになります。
___DATA-57a988c31bbf2___
b4041b95c0221fe211ea74110a421842f625f2c8
2287ccb797fc886055a5f4afc56aa90d7dcf4a4e
d1c618e0f50783efff209ba6c0752d55f14bd241
(HEAD, v0.1.7.2, origin/master, origin/HEAD, master)
Loenix
[email protected]
Mon, 8 Aug 2016 15:09:44 +0200
Loenix
[email protected]
Mon, 8 Aug 2016 15:09:44 +0200
これが働いているが、私はそれを毎回フェッチする必要があります。
環境に関する情報も同じ方法で取得しています。
リスト・バージョン(タグ)
さて、私は名前と日付ですべてのバージョンを一覧表示する必要があるので、私はgit for-each-ref --sort=taggerdate --format "%(tag)|%(taggerdate)" refs/tags | sort -V
をやっている私は、結果として取得しています:
v0.1.5|Mon Jun 6 22:14:18 2016 +0200
v0.1.6|Mon Jun 6 22:47:02 2016 +0200
v0.1.7.1|Mon Aug 8 13:55:59 2016 +0200
v0.1.7.2|Mon Aug 8 15:10:02 2016 +0200
v0.1.7|Mon Aug 8 13:36:12 2016 +0200
これはソートされていませんよく
git checkout v0.1.7.2
このアップデート現在のバージョンの新しいものに:環境
の変更バージョンは私は現在、2つの解決策を見つけます。問題は、私が作者を使用しているとき、composer.lockがローカルで変更され、gitがエラーを返すときです。
git reset --hard v0.1.7.2
これは、フォルダ内のすべてのものを置き換える...
は、私はそれを無視してcomposer.lockエラーを修正することができます。
環境がマスターやタグで分岐する可能性があり、環境のタグ(バージョン)を効率的に識別できないため、バージョンを操作する際に問題が発生します。
私はタグをキャッシュしていますが、この方法によって、私のページがロードするために、5〜10秒かかります...
あなたはトラブルを解決するために私を助けることができますか?いくつかのアドバイスをありますか? 私はそれを別の方法で行うべきだと思いますか? シンプルな既存のデプロイメントアプリケーションを使用することもできますが、良いアプリケーションは見つかりませんでした。
PS:すべてのコマンドは、debian/ubuntu OS上でsystem()PHP関数を使用して実行されます。
なぜシステムエラーが発生する傾向がありますか()? –
@ M.I。これは出力を表示しますが、これはexec()よりもうまく動作していますが、これは問題を引き起こしていません。 – Loenix