Skip to content

Commit d10cd4f

Browse files
authored
get in touch (#15)
* get in touch * attempt to bump * attempt to release * setup env * bump content * bump makefile
1 parent c82e543 commit d10cd4f

File tree

6 files changed

+103
-28
lines changed

6 files changed

+103
-28
lines changed

.github/workflows/release.yml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
on:
2+
push:
3+
# Sequence of patterns matched against refs/tags
4+
tags:
5+
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
6+
7+
name: Create Release
8+
9+
jobs:
10+
build:
11+
name: Create Release
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v2
16+
- name: Setup Node.js environment
17+
uses: actions/[email protected]
18+
with:
19+
node-version: 15.x
20+
- name: Restore caches
21+
uses: actions/cache@v2
22+
with:
23+
path: |
24+
~/.npm
25+
~/.cache/bazel
26+
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}-${{ hashFiles('**/go.sum') }}
27+
restore-keys: |
28+
${{ runner.os }}-
29+
- run: yarn install
30+
- name: Build project
31+
run: |
32+
make -s bin/content
33+
tar zcvf assets.tar.gz ./bin/*
34+
env:
35+
GRAPHQL_ADMIN_API_SECRET: ${{ secrets.GRAPHQL_ADMIN_API_SECRET }}
36+
- name: Create Release
37+
id: create_release
38+
uses: actions/create-release@v1
39+
env:
40+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
41+
with:
42+
tag_name: ${{ github.ref }}
43+
release_name: ${{ github.ref }}
44+
# body: |
45+
# Changes in this Release
46+
# - First Change
47+
# - Second Change
48+
# - Third Change
49+
draft: false
50+
prerelease: false
51+
- name: Upload Release Asset
52+
id: upload-release-asset
53+
uses: actions/upload-release-asset@v1
54+
env:
55+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
56+
with:
57+
upload_url: ${{ steps.create_release.outputs.upload_url }}
58+
asset_path: ./assets.tar.gz
59+
asset_name: ${{ github.ref }}.tar.gz
60+
asset_content_type: application/zip

Makefile

+11-4
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ TK := npx bazelisk run //:theme --
44
LINT := yarn theme-lint
55
BZL := yarn bazelisk --
66
BZL_BIN := $(shell npx bazelisk info bazel-bin)
7+
VERSION := $(shell cat content/.version | tr -d '\n')
78

89
.PHONY: deploy/theme,deploy/contents,watch,download/theme
910

@@ -39,10 +40,16 @@ gqlgenc/client/client.go: gqlgenc/main.go gqlgenc/*.gql
3940
$(BZL) run gqlgenc
4041
cp -r $(BZL_BIN)/gqlgenc/gqlgenc_/gqlgenc.runfiles/k9books/gqlgenc/client $(CURDIR)/gqlgenc
4142

42-
bin/*: $(GO_FILES) WORKSPACE
43-
mkdir -p bin
44-
$(BZL) build //$(@F):all
45-
cp -f $(BZL_BIN)/$(@F)/$(@F)_/$(@F) bin/
43+
k9bookshelf/content: $(GO_FILES) WORKSPACE
44+
mkdir -p k9bookshelf
45+
for target in darwin_amd64 linux_amd64 ; do \
46+
$(BZL) build --platforms=@io_bazel_rules_go//go/toolchain:$$target //content/cmd/content ; \
47+
cp -f $(BZL_BIN)/content/cmd/content/content_/content k9bookshelf/$(VERSION)-content.$$target ; \
48+
done
49+
50+
.PHONY: release
51+
release:
52+
git tag -af "$(VERSION)" -m ""
4653

4754
.PHONY: setup
4855
setup: WORKSPACE */BUILD.bazel GOPATH

content/.version

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
v0.0.1

content/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ A CLI tool which to edit contents of Shopify's store through Admin API that insp
44

55
## Usage
66

7-
Download from [here]().
7+
Download from [latest release](https://github.com/kogai/k9bookshelf/releases).
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,58 @@
11
こんにちは。
2-
趣味でShopify[マーチャントをやっている](https://k9bookshelf.com/)ものです。
2+
趣味でShopify [マーチャントをやっている](https://k9bookshelf.com/) ものです。
33

44
この記事は [Shopify開発を盛り上げる(Liquid, React, Node.js, Graph QL) Advent Calendar 2020](https://qiita.com/advent-calendar/2020/shopify-liquid) の11日目の記事です。
55

6-
昨日は[benzookapi](https://qiita.com/benzookapi)さんの[placeholder]でした。
6+
昨日は [benzookapi](https://qiita.com/benzookapi) さんの[placeholder]でした。
77

88
皆さんShopifyで商品情報やページの編集をする時はどうされていますか?
99
当然ですが、ショップの管理画面で提供されているエディタ(以下リッチエディタ)で更新されていることと思います。
10-
(ちなみにShopifyのデザインシステム[Poralisで提供して欲しいという要望](https://github.com/Shopify/polaris-react/issues/303#issuecomment-415554317)が多く集まっているようですね)
10+
(ちなみにShopifyのデザインシステム [Poralisで提供して欲しいという要望](https://github.com/Shopify/polaris-react/issues/303#issuecomment-415554317) が多く集まっているようですね)
1111

1212
私は元々仕事でShopifyアプリの開発をしていた延長で、趣味と実益を兼ねてこのサイトを出店しているのですが、マーチャントの立場で改めて管理画面を使ってみると、どうにもこのエディタでは満足できないことに気づいたのです。
1313

14-
と言うのも普段公私ともに文書を書くのに最もよく使っているのは[markdown](https://www.markdownguide.org/)だからです。
14+
と言うのも普段公私ともに文書を書くのに最もよく使っているのは [markdown](https://www.markdownguide.org/) だからです。
1515

1616
また本業のプログラマーという職業柄、文章を書くには使い慣れたテキストエディタを使いたいという気持ちもあります。
1717

18-
Shopifyではテーマ開発用ツールとして[theme-kit](https://github.com/Shopify/themekit)が提供されており、
18+
Shopifyではテーマ開発用ツールとして [theme-kit](https://github.com/Shopify/themekit) が提供されており、
1919
Shopifyで編集したテーマファイルをダウンロードしたり手元のエディタで編集したものをアップロードすることが出来ます。
2020

2121
これに近い体験が、コンテンツの管理でも出来ないものでしょうか?
2222

23-
コミュニティを[検索してみると](https://community.shopify.com/c/forums/searchpage/tab/message?advanced=false&allow_punctuation=false&filter=location&location=category:en&q=markdown)、markdownで編集出来るようなアプリをリリースしたというコメントは散見されるものの、デッドリンクとなっているなど、2020年時点でも使える解決策は見つかりませんでした。
23+
コミュニティを [検索してみると](https://community.shopify.com/c/forums/searchpage/tab/message?advanced=false&allow_punctuation=false&filter=location&location=category:en&q=markdown)、markdownで編集出来るようなアプリをリリースしたというコメントは散見されるものの、デッドリンクとなっているなど、2020年時点でも使える解決策は見つかりませんでした。
2424

25-
幸いShopifyには[Admin API](https://shopify.dev/docs/admin-api)を始めとする、多種多様なAPIが公開されています。
25+
幸いShopifyには [Admin API](https://shopify.dev/docs/admin-api) を始めとする、多種多様なAPIが公開されています。
2626
また、リッチエディタで保存された文言は、内部的にはHTMLで保存されているようです。
2727

2828
商品情報編集やページ・ブログ記事の更新までAPI経由で操作が可能なので、theme-kitよろしくcontent-kitのようなツールが書けそうです。
29-
(と言うか、この記事は[content-kitと名付けたその自作ツール](https://github.com/kogai/k9bookshelf/blob/main/content/README.md)で更新しています)
29+
(と言うか、この記事は [content-kitと名付けたその自作ツール](https://github.com/kogai/k9bookshelf/blob/main/content/README.md) で更新しています)
3030

3131
## ツールの構成
3232

3333
開発に際して参考にしたドキュメントやツールは以下の通りです。
3434

35-
- [Private App](https://help.shopify.com/en/manual/apps/app-types#private-apps)でショップへのアクセス権限を取得
35+
- [Private App](https://help.shopify.com/en/manual/apps/app-types#private-apps) でショップへのアクセス権限を取得
3636
- [Admin API](https://shopify.dev/docs/admin-api)
37-
- [GraphQL API](https://shopify.dev/docs/admin-api/graphql/reference/common-objects/queryroot/index)
38-
- GraphQLのクエリファイルから以下のツールでクライアントを生成
39-
- https://github.com/Yamashou/gqlgenc
40-
- https://github.com/99designs/gqlgen
41-
- [REST API](https://shopify.dev/docs/admin-api/rest/reference)
42-
- ページとブログの更新はGraphQL APIでサポートされていないのでzREST APIも併用
43-
44-
Shopifyはドキュメントが非常に充実していて、[GraphiQLアプリ](https://shopify.dev/tools/graphiql-admin-api)によるインタラクティブな試行環境もあるので、
37+
- [GraphQL API](https://shopify.dev/docs/admin-api/graphql/reference/common-objects/queryroot/index)
38+
- GraphQLのクエリファイルから以下のツールでクライアントを生成
39+
- [https://github.com/Yamashou/gqlgenc](https://github.com/Yamashou/gqlgenc)
40+
- [https://github.com/99designs/gqlgen](https://github.com/99designs/gqlgen)
41+
- [REST API](https://shopify.dev/docs/admin-api/rest/reference)
42+
- ページとブログの更新はGraphQL APIでサポートされていないのでREST APIも併用
43+
44+
Shopifyはドキュメントが非常に充実していて、 [GraphiQLアプリ](https://shopify.dev/tools/graphiql-admin-api) によるインタラクティブな試行環境もあるので、
4545
特に詰まることもなく開発出来ました。
4646

47-
ページやブログはREST APIの[Goクライアントライブラリ](https://github.com/bold-commerce/go-shopify)でサポートされていませんでした。
47+
ページやブログはREST APIの [Goクライアントライブラリ](https://github.com/bold-commerce/go-shopify) でサポートされていませんでした。
4848
この辺りはShopifyアプリではあまり取り扱われないリソースなのかも知れません。
4949

5050
唯一困ったのは、テーマファイルや他のツール(テーマや書誌情報の規格化されたデータファイルの取り込みツールなど)を同じレポジトリで管理している都合上、
51-
[bazel](https://bazel.build/)でビルドをしているのですが、GraphQLクライアントの生成ツールが依存している `*.gotpl` などのファイルの依存関係が自動生成できなかったことです。
51+
[bazel](https://bazel.build/) でビルドをしているのですが、GraphQLクライアントの生成ツールが依存している `*.gotpl` などのファイルの依存関係が自動生成できなかったことです。
5252

5353
Shopify関係ないですね。
5454

55-
(bazelのgo系ルールには依存解決時にパッチを当てる仕組みがあるようで、[パッチを書くことで](https://github.com/kogai/k9bookshelf/blob/b7bb804c0ad45b5eed5215d1b62a9c434c4cc6aa/content/com_github_yamashou_gqlgenc.patch#L1-L25)解決出来ました)
55+
(bazelのgo系ルールには依存解決時にパッチを当てる仕組みがあるようで、 [パッチを書くことで](https://github.com/kogai/k9bookshelf/blob/b7bb804c0ad45b5eed5215d1b62a9c434c4cc6aa/content/com_github_yamashou_gqlgenc.patch#L1-L25) 解決出来ました)
5656

5757
まだ`theme-kit`に比べると、watchがないなど基本的な機能がまだ足りてないのですが、一応使い始めることは出来ています。
5858

@@ -62,7 +62,10 @@ Shopify関係ないですね。
6262

6363
[](gif)
6464

65-
バイナリを[Releaseページ]()に置いておくので、良かったら試してみて下さい。
65+
ショップにあるコンテンツの取得と手元のコンテンツのアップロードをサポートしています。
66+
(HTMLとMarkdownの相互変換で微細な差異が生じることがあります)
67+
68+
バイナリを [Releaseページ](https://github.com/kogai/k9bookshelf/releases) に置いておくので、良かったら試してみて下さい。
6669

6770
```
6871
content -h
@@ -81,7 +84,8 @@ Flags:
8184
-h, --help help for content-kit
8285
8386
Use "content-kit [command] --help" for more information about a command.
87+
8488
```
8589

86-
次回は[ShoheiTai](https://qiita.com/ShoheiTai)さんの「Shopifyアプリの選定・運用ノウハウとか」です。
90+
次回は [ShoheiTai](https://qiita.com/ShoheiTai) さんの「Shopifyアプリの選定・運用ノウハウとか」です。
8791
お楽しみに!
Original file line numberDiff line numberDiff line change
@@ -1 +1,4 @@
1-
1+
- Goでマイクロサービスの1サービス(ログサービス)を作っていく
2+
- 20年代のWeb開発入門として良いかも(UI層の話はないけど)
3+
- もはや事業の最初期でも単一のサービスで構成されるアプリケーションはないと思う
4+
- 「分散システム」に期待して読み始めると、序盤は割合退屈かも

0 commit comments

Comments
 (0)