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

ci: use build cache for build_slim_packages

William Yang 4 лет назад
Родитель
Сommit
11daef4ab3
1 измененных файлов с 41 добавлено и 0 удалено
  1. 41 0
      .github/workflows/build_slim_packages.yaml

+ 41 - 0
.github/workflows/build_slim_packages.yaml

@@ -48,6 +48,25 @@ jobs:
         echo "EMQX_NAME=${{ matrix.profile }}" >> $GITHUB_ENV
         echo "EMQX_NAME=${{ matrix.profile }}" >> $GITHUB_ENV
         echo "CODE_PATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV
         echo "CODE_PATH=$GITHUB_WORKSPACE" >> $GITHUB_ENV
         echo "EMQX_PKG_NAME=${{ matrix.profile }}-$(./pkg-vsn.sh)-otp${{ matrix.otp }}-${{ matrix.os }}-amd64" >> $GITHUB_ENV
         echo "EMQX_PKG_NAME=${{ matrix.profile }}-$(./pkg-vsn.sh)-otp${{ matrix.otp }}-${{ matrix.os }}-amd64" >> $GITHUB_ENV
+    - 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}"
+        make clean-all
+    - name: load rocksdb cache
+      uses: actions/cache@v2
+      with:
+        path: _build/default/lib/rocksdb/
+        key: ${{ matrix.os }}-${{ matrix.otp }}-amd64-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }}
+    - name: load quicer cache
+      uses: actions/cache@v2
+      with:
+        path: _build/default/lib/quicer/
+        key: ${{ matrix.os }}-${{ matrix.otp }}-amd64-${{ steps.deps-refs.outputs.DEP_QUICER_REF }}
     - name: build and test zip package
     - name: build and test zip package
       run: |
       run: |
         make ${EMQX_NAME}-zip
         make ${EMQX_NAME}-zip
@@ -99,6 +118,28 @@ jobs:
         kerl update releases
         kerl update releases
         kerl build ${{ matrix.otp }}
         kerl build ${{ matrix.otp }}
         kerl install ${{ matrix.otp }} $HOME/.kerl/${{ matrix.otp }}
         kerl install ${{ matrix.otp }} $HOME/.kerl/${{ matrix.otp }}
+    - name: Get deps git refs for cache
+      id: deps-refs
+      run: |
+        . $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}"
+        make clean-all
+    - name: load rocksdb cache
+      uses: actions/cache@v2
+      with:
+        path: _build/default/lib/rocksdb/
+        key: ${{ matrix.macos }}-${{ matrix.otp }}-macos-${{ steps.deps-refs.outputs.DEP_ROCKSDB_REF }}
+    - name: load quicer cache
+      uses: actions/cache@v2
+      with:
+        path: _build/default/lib/quicer/
+        key: mac-${{ matrix.otp }}-macos-${{ steps.deps-refs.outputs.DEP_QUICER_REF }}
     - name: build ${{ matrix.profile }}
     - name: build ${{ matrix.profile }}
       run: |
       run: |
         . $HOME/.kerl/${{ matrix.otp }}/activate
         . $HOME/.kerl/${{ matrix.otp }}/activate