Browse Source

Github Actions: cache modules and only run when necessary (#197)

This PR does two things:

- Only run the tests when relevant files change.
- Cache the Go Modules directory between runs, so they don't have to redownload everything everytime (go.sum is the cache key). Pretty much straight from the examples: https://github.com/actions/cache/blob/master/examples.md#go---modules
Wade Simmons 5 years ago
parent
commit
1cb3201b5e
3 changed files with 38 additions and 0 deletions
  1. 3 0
      .github/workflows/gofmt.yml
  2. 14 0
      .github/workflows/smoke.yml
  3. 21 0
      .github/workflows/test.yml

+ 3 - 0
.github/workflows/gofmt.yml

@@ -4,6 +4,9 @@ on:
     branches:
     branches:
       - master
       - master
   pull_request:
   pull_request:
+    paths:
+      - '.github/workflows/gofmt.yml'
+      - '**.go'
 jobs:
 jobs:
 
 
   gofmt:
   gofmt:

+ 14 - 0
.github/workflows/smoke.yml

@@ -4,6 +4,13 @@ on:
     branches:
     branches:
       - master
       - master
   pull_request:
   pull_request:
+    paths:
+      - '.github/workflows/smoke**'
+      - '**Makefile'
+      - '**.go'
+      - '**.proto'
+      - 'go.mod'
+      - 'go.sum'
 jobs:
 jobs:
 
 
   smoke:
   smoke:
@@ -20,6 +27,13 @@ jobs:
     - name: Check out code into the Go module directory
     - name: Check out code into the Go module directory
       uses: actions/checkout@v1
       uses: actions/checkout@v1
 
 
+    - uses: actions/cache@v1
+      with:
+        path: ~/go/pkg/mod
+        key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
+        restore-keys: |
+          ${{ runner.os }}-go-
+
     - name: build
     - name: build
       run: make
       run: make
 
 

+ 21 - 0
.github/workflows/test.yml

@@ -4,6 +4,13 @@ on:
     branches:
     branches:
       - master
       - master
   pull_request:
   pull_request:
+    paths:
+      - '.github/workflows/test.yml'
+      - '**Makefile'
+      - '**.go'
+      - '**.proto'
+      - 'go.mod'
+      - 'go.sum'
 jobs:
 jobs:
 
 
   test-linux:
   test-linux:
@@ -20,6 +27,13 @@ jobs:
     - name: Check out code into the Go module directory
     - name: Check out code into the Go module directory
       uses: actions/checkout@v1
       uses: actions/checkout@v1
 
 
+    - uses: actions/cache@v1
+      with:
+        path: ~/go/pkg/mod
+        key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
+        restore-keys: |
+          ${{ runner.os }}-go-
+
     - name: Build
     - name: Build
       run: make all
       run: make all
 
 
@@ -43,6 +57,13 @@ jobs:
     - name: Check out code into the Go module directory
     - name: Check out code into the Go module directory
       uses: actions/checkout@v1
       uses: actions/checkout@v1
 
 
+    - uses: actions/cache@v1
+      with:
+        path: ~/go/pkg/mod
+        key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
+        restore-keys: |
+          ${{ runner.os }}-go-
+
     - name: Build nebula
     - name: Build nebula
       run: go build ./cmd/nebula
       run: go build ./cmd/nebula