https://git.reactos.org/?p=reactos.git;a=commitdiff;h=3644f3efca1b3b5f621706fe8ff8f71c7d366caa

commit 3644f3efca1b3b5f621706fe8ff8f71c7d366caa
Author:     Jérôme Gardou <[email protected]>
AuthorDate: Tue May 4 10:57:24 2021 +0200
Commit:     Jérôme Gardou <[email protected]>
CommitDate: Tue May 4 16:26:20 2021 +0200

    [GITHUB] Improve logic to cache RosBE build
    
    + Minor implrovements:
      Use cmake args instead of forcing command working directory
      Give specific names to artifacts - bootcd/livecd
---
 .github/workflows/build.yml | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index cade6ce5644..f3ad5168c7d 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,19 +10,22 @@ jobs:
       fail-fast: false
     runs-on: ubuntu-latest
     steps:
-    - name: Get Runner arch
-      id: get_native_arch
+    - name: Get RosBE build specifics
+      id: get_rosbe_spec
       run: |
         gcc -march=native -Q --help=target | grep "\-march= " | awk '{print 
$NF}'
-        echo ::set-output name=march::$(gcc -march=native -Q --help=target | 
grep "\-march= " | awk '{print $NF}')
+        echo ::set-output name=march-sha::$(gcc -march=native -Q --help=target 
| sha1sum | awk '{print $1}')
+        echo ::set-output name=git-sha::$(git ls-remote 
https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}')
+        wget 
https://gist.githubusercontent.com/zefklop/b2d6a0b470c70183e93d5285a03f5899/raw/build_rosbe_ci.sh
     - name: Get RosBE
+      id: get_rosbe
       uses: actions/cache@v2
       with:
         path: RosBE-CI
-        key: RosBE-CI-${{runner.os}}-${{steps.get_native_arch.outputs.march}}
+        key: 
RosBE-CI-${{runner.os}}-${{steps.get_rosbe_spec.outputs.march-sha}}-${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}
     - name: Compile RosBE
+      if: steps.get_rosbe.outputs.cache-hit != 'true'
       run: |
-        wget 
https://gist.githubusercontent.com/zefklop/b2d6a0b470c70183e93d5285a03f5899/raw/build_rosbe_ci.sh
         chmod +x build_rosbe_ci.sh
         ./build_rosbe_ci.sh ${{github.workspace}}/RosBE-CI
     - name: Install ccache
@@ -51,7 +54,9 @@ jobs:
         echo "CCACHE_DIR=${{github.workspace}}/ccache" >> $GITHUB_ENV
         echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
         echo "CCACHE_SLOPPINESS=time_macros" >> $GITHUB_ENV
-        echo "CCACHE_COMPILERCHECK=string:${{hashfiles('./build_rosbe_ci.sh', 
'./RosBE-CI/git-commit')}}" >> $GITHUB_ENV
+    - name: Ease ccache compiler check (GCC)
+      if: matrix.compiler == 'gcc'
+      run: echo 
"CCACHE_COMPILERCHECK=string:${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}"
 >> $GITHUB_ENV
     - name: Configure
       run: echo 'cmake -S ${{github.workspace}}/src -B 
${{github.workspace}}/build -G Ninja 
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake 
-DARCH:STRING=${{matrix.arch}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 
-DENABLE_ROSAPPS=1 -DCLANG_VERSION=${{env.LLVM_VERSION}}' | 
${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
     - name: Build
@@ -63,12 +68,12 @@ jobs:
     - name: Upload bootcd
       uses: actions/upload-artifact@v2
       with:
-        name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
+        name: 
reactos-bootcd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
         path: build/bootcd.iso
     - name: Upload livecd
       uses: actions/upload-artifact@v2
       with:
-        name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
+        name: 
reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
         path: build/livecd.iso
 
   build-msvc:
@@ -118,22 +123,18 @@ jobs:
     - name: Configure
       run: cmake -S src -B build -G Ninja 
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake 
-DARCH:STRING=${{matrix.arch}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 
-DUSE_CLANG_CL:BOOL=${{matrix.compiler == 'clang-cl'}}
     - name: Build
-      working-directory: ${{github.workspace}}\build
-      run: cmake --build .
+      run: cmake --build ${{github.workspace}}\build
     - name: Generate ISOs
-      working-directory: ${{github.workspace}}\build
-      run: |
-        cmake --build . --target bootcd
-        cmake --build . --target livecd
+      run:  cmake --build ${{github.workspace}}\build --target bootcd --target 
livecd
     - name: Upload bootcd
       uses: actions/upload-artifact@v2
       with:
-        name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
+        name: 
reactos-bootcd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
         path: build/bootcd.iso
     - name: Upload livecd
       uses: actions/upload-artifact@v2
       with:
-        name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
+        name: 
reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
         path: build/livecd.iso
 
   build-msbuild-i386:

Reply via email to