From 52d716acc6aa1f4b35782112ce559a4a7c9b61c6 Mon Sep 17 00:00:00 2001 From: dblock Date: Tue, 2 Apr 2024 15:47:16 -0400 Subject: [PATCH] Customize GitHub pages workflow. Signed-off-by: dblock --- .github/workflows/deploy.yml | 44 +++++++++++++++++++++++++++ .gitignore | 5 ++- PUBLISHING_SPECS.md | 2 +- _config.yml | 9 ++++++ _plugins/openapi.rb | 16 ++++++++++ favicon.ico | Bin 0 -> 15086 bytes index.html | 57 ++++++++++++++++++----------------- 7 files changed, 103 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/deploy.yml create mode 100644 _config.yml create mode 100644 _plugins/openapi.rb create mode 100644 favicon.ico diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..c0ec9b73 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,44 @@ +# deploys to https://opensearch-project.github.io/opensearch-api-specification/ +name: Deploy + +on: + push: + branches: + - main + +concurrency: + group: "pages" + cancel-in-progress: false + +permissions: + contents: write + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout the repo + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: '20' + + - name: Setup Ruby + uses: ruby/setup-ruby@v1 + with: + ruby-version: '3.3' + bundler-cache: true + + - name: Build with Jekyll + run: |- + gem install jekyll + jekyll build + + - name: Deploy 🚀 + uses: JamesIves/github-pages-deploy-action@v4 + with: + folder: _site + branch: gh-pages + diff --git a/.gitignore b/.gitignore index 875f8bce..c13ed1f1 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,7 @@ node_modules .idea/ # VSCode files -.vscode/ \ No newline at end of file +.vscode/ + +# Jekyll Website +_site/ diff --git a/PUBLISHING_SPECS.md b/PUBLISHING_SPECS.md index e9111a15..837dac89 100644 --- a/PUBLISHING_SPECS.md +++ b/PUBLISHING_SPECS.md @@ -3,4 +3,4 @@ ## Publishing OpenSearch API Specs * The [build](.github/workflows/build.yml) workflow publishes [a release draft](https://github.com/opensearch-project/opensearch-api-specification/releases) whenever a change is pushed to `main`. -* The updated OpenAPI specs are hosted on GitHub pages at https://opensearch-project.github.io/opensearch-api-specification/. \ No newline at end of file +* The [deploy](.github/workflows/deploy.yml) workflow publishes specs to [GitHub pages](https://opensearch-project.github.io/opensearch-api-specification/). \ No newline at end of file diff --git a/_config.yml b/_config.yml new file mode 100644 index 00000000..0472d5b5 --- /dev/null +++ b/_config.yml @@ -0,0 +1,9 @@ +source: . +destination: ./_site +include: + - index.html + - favicon.ico +exclude: + - '*' +keep_files: + - opensearch-openapi.yaml diff --git a/_plugins/openapi.rb b/_plugins/openapi.rb new file mode 100644 index 00000000..82bae554 --- /dev/null +++ b/_plugins/openapi.rb @@ -0,0 +1,16 @@ +module OpenAPI + def self.generate(_site, _payload) + return if @generated + + Dir.chdir('tools') do + system 'npm install' + system 'npm run merge -- ../spec/opensearch-openapi.yaml ../_site/opensearch-openapi.yaml' + end + + @generated = true + end +end + +Jekyll::Hooks.register :site, :post_write do |site, payload| + OpenAPI.generate(site, payload) +end diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..dd2d62ecec85d74b8432af443756556c882d7656 GIT binary patch literal 15086 zcmdU$dyHLG6~@=t>i9sX8cigc%xFaM@dq|qMXQ&@x2S{=NvtNK#)1h36%`D|d&|72 zM2Zy}6{QlQLaT|Tb{=hQheCL?h$bpgA~2-|YNy(%Q`(tw=N^CGx#!&3bKK|Lb034_ zgx$3tYp?aKwI6HmeJ*Alw#3dl%b-1W+Zkpn%&ey;Dlap8l)7b5wO_K-YygHc;h~FN zL{feD_qr-+_rII2vlk5a+2}~Wl}Z01?H}p02S*0%Ht3q+0sF-6l7Vn>{(=2`Fb8## zY}<=X-`v_~uUbr&Z11%*z;?0@e%HQP#$|YDzzU1Sj^SQ=1M}ny^6zM$^@8ta?74?@ zw2obO(eLcVVn-53sbtRq|8i{l`e?u1n_^3a_MdDm*~^pt7h8GTfW4kE`W|*1_t^5p zVwzJ~zLT$6_t#>>se~Qn(E+mTI(A&Z6a{|AN&cY;slsy=h;F0 zXtxd9`m7sWm!ju((nF+4QiY_r^?TaZjtp8;k&^!Bl9KCULpz3G`=EU=im}4#?&ZGx z40}y62nhWR{xSF8f&72EI$Bu|;eOF?J6(CX^L_T?2H}V7jNuA&OgVaHhx_e)jmjdf zT#O%2IC6Zx&a7k1KGmpR@uO37$z2am$4#{7|Yc@e0l1k_~6F4d(!$bS3lWizlV0} z?31Q5Pkj`pYd-UxF}8izUJ3Sj`&Qd*AztLcnZ~1a3zoUKz}Y*=OZ!jThBq<)wh!35 zllmGhM`ylx3})Rskk0O4clWB8uXV~jvXMBp;~MMo*%sZA=3*!JjF^x0^}_}7{bBhg z){}?o{*%TB#`_$c_ls|6y>(KjGfeBgc4QDQ?{LRB4O6n7{qMmvo3#%(ILmqypsYC8 zF6{qC)<(tuB(A(=`ae#(-p5bhghORg4AsAMtgdU2g*67~r#Ck{*f6 zb?AQDuh9A5C%4r)`4%kuVhrR#3q#`F2$*SUX|d`sUL6f^bC zf~*@zipyE}GTZRwpo=pr&z`g%U5{n)WVH*h@G9Bu$pBjd8c)s-iocJJ}^ z)qRTj^2Y_jKC3rBpWb%WF;?$cAnbv@!?X)$njFQr1;T$s?;vS<+f|=9Lp3t5vw8dM zf_7odlEd2l(gOJZnk=2|Y}?*vZ)-FDTNdiv;)|@=_yZ|^pV9ZLzfr##dKqWDo`t{^1Y`P6Xwa^Rc2wy!9}ra^jCWV*bXS#DI;%8T z6VWlza%V7EgpMx>rbSCs6`=fA={75y6)U{VPD2Ceq$nrkn2xJ_m)V$0515tcA8?Z| zSx0d4m}qA(1vM)KQ*^c^L6vsHrZU!q6ySHFjOJhsv@-}Q9Z-xccK`}HDY`KTN>w_I z29?L?WA+$HG^j)r146qU8v28B=pTm`)Q@tp+P~`03gT1_q*`9}}E?-@6dHvSgz3<6t-v;W(*s7Qe3zpT2^*{S{*Lmq z_S$RU|0_vzLl|=TL3b`<$~yYYecN;9S0qpGpzBw>j)j{H=!&u8<0*X?q3rRAgf5Ux?J%_QH@puH8n#~Rcvd5R9X z{@{(*#glqpiaY5|fwBB^6S}4U=~zxZ8m-N6e_)SV9rKgFs!83_e`hQw4~1WQl=|%z zzxHbK^Y+iET|Aiy+$V;vj68Ymk)hngKE+)Bj_M=bzBM-`o@R8$xJIwF7okJH!;_x7<9bo*R;eBx|9~dn zHuu!qBVAd(d^D$j9qNemxO~)~8?}Y!s2U$j!cbhc(RQ#L}wVCqjZ+L zFXDZ;m2YY~8%F0L_xEw}yqc$9ICPd%ALjG-rN8O;JYb)r|8GdCaYOSgwmnG|lj%F1 z*Y8?;@L!=h1-b#%0Aq+DGGZ8XdXX-i*F2B<(#l**WtUrpZ-(a(_tj zGOlN9ug$3|iEX0MH}j-^^d{$XQb%eT+*c*#HCjf0=C||=zx<_D+l3YRzBQFj?t{kNA%sQSzT%Ukh?zeYntCRN3L(=dr6wEw0h#{ z1;nh~=+RkPcacNXZDsv_t=U+~;|ebpJRJmj(HJL9Q&A}dy+L=`f_2jt+&gK-r^c;# zV9bhBq+=xuW_aBA7B3E0@))slNl;nY8I)Ic1=B0LgULc6C>3^>t+1O;JbM)NW>ZZ( zS(MN-#;eJgUP_9A{(mw(OZ1Rx?-WZZh`54PJ!H&n8h zC{LSoYFvD}Cz;Q`NUm4;i2CrmDRM83`o`~<6|igu?+0Ap#Ck)WI(KrPQl52Dp#S3} zoevHZ@89L}Ci7|!`G|L6|LS>4x*r0I_s%aIBfa*1;exM1l8=wZvcq|bJ;~p@%Wn97 zPMVDR)W$~hIqo0gi2NDX$=~#ud+SMzD|UQ3=JiqS8A+XSS-R8i=&`KGuQj}JU+5mq z)0i)d!h1R6q%*kY*!}3eSYz+&Q!eth$!kaOl-aQ<-g9S|)3epo!CPt - - - - - OpenSearch API Spec - - -
- - - + + + + + OpenSearch API Spec + + + +
+ + + + \ No newline at end of file