Просмотр исходного кода

ci(build-cache): add scripts/get-dep-refs.sh

William Yang 4 лет назад
Родитель
Сommit
e388ad1b21

+ 3 - 15
.github/workflows/build_packages.yaml

@@ -172,11 +172,7 @@ jobs:
         . $HOME/.kerl/${{ matrix.otp }}/activate
         make ensure-rebar3
         sudo cp rebar3 /usr/local/bin/rebar3
-        rebar3 get-deps
-        RocksDBRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"rocksdb">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_ROCKSDB_REF::${RocksDBRef}"
-        QuicerRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"quicer">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_QUICER_REF::${QuicerRef}"
+        scripts/get-dep-refs.sh
         make clean-all
     - name: load rocksdb cache
       uses: actions/cache@v2
@@ -289,11 +285,7 @@ jobs:
       id: deps-refs
       run: |
         cd source
-        rebar3 get-deps
-        RocksDBRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"rocksdb">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_ROCKSDB_REF::${RocksDBRef}"
-        QuicerRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"quicer">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_QUICER_REF::${QuicerRef}"
+        scripts/get-dep-refs.sh
         make clean-all
     - name: load rocksdb cache
       uses: actions/cache@v2
@@ -427,11 +419,7 @@ jobs:
         cd source
         make ensure-rebar3
         sudo cp rebar3 /usr/local/bin/rebar3
-        rebar3 get-deps
-        RocksDBRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"rocksdb">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_ROCKSDB_REF::${RocksDBRef}"
-        QuicerRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"quicer">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_QUICER_REF::${QuicerRef}"
+        scripts/get-dep-refs.sh
         make clean-all
 
     - name: load rocksdb cache

+ 2 - 10
.github/workflows/build_slim_packages.yaml

@@ -51,11 +51,7 @@ jobs:
     - name: Get deps git refs for cache
       id: deps-refs
       run: |
-        rebar3 get-deps
-        RocksDBRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"rocksdb">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_ROCKSDB_REF::${RocksDBRef}"
-        QuicerRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"quicer">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_QUICER_REF::${QuicerRef}"
+        scripts/get-dep-refs.sh
         make clean-all
     - name: load rocksdb cache
       uses: actions/cache@v2
@@ -123,11 +119,7 @@ jobs:
         . $HOME/.kerl/${{ matrix.otp }}/activate
         make ensure-rebar3
         sudo cp rebar3 /usr/local/bin/rebar3
-        rebar3 get-deps
-        RocksDBRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"rocksdb">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_ROCKSDB_REF::${RocksDBRef}"
-        QuicerRef=$(erl -noshell -eval '{ok,Raw}=file:consult("rebar.lock"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<"quicer">>,1, Deps), io:format("~s",[Ref]), init:stop().')
-        echo "::set-output name=DEP_QUICER_REF::${QuicerRef}"
+        scripts/get-dep-refs.sh
         make clean-all
     - name: load rocksdb cache
       uses: actions/cache@v2

+ 11 - 0
scripts/get-dep-refs.sh

@@ -0,0 +1,11 @@
+#!/usr/bin/env bash
+set -euo pipefail
+get_ref() {
+    local APP=$1
+    #echo "{ok,Raw}=file:consult(\"rebar.lock\"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<\"${APP}\">>,1, Deps), io:format(\"~s\",[Ref]), init:stop()."
+    erl -noshell -eval "{ok,Raw}=file:consult(\"rebar.lock\"), {_Vsn, Deps}=hd(Raw), {_, {git, _Url, {ref, Ref}},_} = lists:keyfind(<<\"${APP}\">>,1, Deps), io:format(\"~s\",[Ref]), init:stop()."
+}
+
+rebar3 get-deps
+echo "::set-output name=DEP_ROCKSDB_REF::$(get_ref rocksdb)"
+echo "::set-output name=DEP_QUICER_REF::$(get_ref quicer)"