ansible で private な GitHub Releases からファイルをダウンロードする方法

GitHub の private リポジトリで開発を進めている Golang プロジェクトがあります。CiecleCI 上でビルドを行ってバイナリファイルを GitHub Releases にアップロードしているものがあります。 これまでは「手動で最新版ファイルをダウンロードして ansible でデプロイする」といった方法を取っていました。都度行うには手間なので ansible の playbook 1発で実行させたくなりました。 実行したい処理 特定の GitHub Releases から最新版のファイルをダウンロード ansible 実行対象サーバのファイルと差し替え GitHub Releases の各バージョンには 1 ファイルのみ アップロードされている状態 準備 GitHub の API にアクセスする必要があるため Personal Access Token を取得します。管理画面 から新しいトークンの作成ができます。権限は 1 番上の repo にチェックを入れるだけです。 取得したトークンを環境変数に設定します。(実際には direnv を使っています) $ export GITHUB_TOKEN=YOUR-GITHUB-TOKEN 参考 playbook - name: private な github releases からファイルをダウンロードする hosts: all vars: github: user: 'USER-NAME' # 対象リポジトリのユーザ名 repos: 'REPOSITORY-NAME' # 対象リポジトリ名 token: "{{ lookup('env', 'GITHUB_TOKEN') }}" # 環境変数 GITHUB_TOKEN をロード dest: '/path/to/savepath' # DL したファイルの保存先パス tasks: - name: '{{ github....

2016/12/01 · Yuya MATSUSHIMA

middleman-vcs-time で正確な sitemap.xml を出力する

Middleman で Web サイトを作る場合, sitemap.xml の lastmod はビルドされ出力される時刻に統一されてしまいます。 sitemap.xml の仕様を考えると可能な限り lastmod は正しい時刻が望ましいです。現在開発中サービスの都合もあり「どうすれば正確な時刻を出力できるか?」と思い悩んでしばらく時間が経ってしまいました。 Twitter で rubygems middleman で検索して眺めていたところ, この問題を解決してくれそうな拡張機能がひっそりリリースされていることに気づきました。 middleman-vcs-time | RubyGems.org middleman-vcs-time 概要 README によると, Provides means to look up the last-modified times of Middleman sitemap resources according to version control. Supports Git with a fallback to filesystem metadata. README.md: https://github.com/AndrewKvalheim/middleman-vcs-time/blob/master/README.md とのことで, VCS (Git など) の最終変更時刻をベースに Middleman の sitemap リソースを書き替えてくれるようです。現状では Git をサポートし, フォールバックとしてファイルのメタデータを参照します。とのことで。 sitemap リソースについて sitemap リソースはドキュメントでいうと サイトマップ のことです。...

2016/11/29 · Yuya MATSUSHIMA

Hugo でブログ始めました

過去に e2esound.com 業務日誌 や 技術ブログ | e2esound.com を書いてきました。諸事情重なった上に検討したところ「事業とは別でブログを用意しておいた方が良さそう」という結論に至ったので新しいブログを始めました。 このブログの開始に伴って 2 つのブログは更新を停止しています。 このサイトの技術構成 今のところではありますが, 現状では次の構成です。 Golang 製静的サイトジェネレータ Hugo デザインは hugo-zen をベースに syntax highlight を Pygments ベースに変更 リポジトリ github の private repos デプロイ CircleCI で github の master ブランチを awscli で処理 サーバ AWS S3 AWS CloudFront AWS CertificateManager AWS Route53 最近増えているらしい静的サイトベースのブログサイトで, とりあえず一通り自動化してる。といった構成になっています。 なぜ Hugo なのか いつもであれば静的サイトジェネレータには Middleman を採用していますが, 今回は Go 言語ベースの Hugo にしました。...

2016/11/22 · Yuya MATSUSHIMA