From 1cb3201b5eb7578acfe5b94c8fa5d18083b24366 Mon Sep 17 00:00:00 2001 From: Wade Simmons Date: Mon, 2 Mar 2020 16:21:19 -0500 Subject: [PATCH] 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 --- .github/workflows/gofmt.yml | 3 +++ .github/workflows/smoke.yml | 14 ++++++++++++++ .github/workflows/test.yml | 21 +++++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/.github/workflows/gofmt.yml b/.github/workflows/gofmt.yml index a5294a3..bada507 100644 --- a/.github/workflows/gofmt.yml +++ b/.github/workflows/gofmt.yml @@ -4,6 +4,9 @@ on: branches: - master pull_request: + paths: + - '.github/workflows/gofmt.yml' + - '**.go' jobs: gofmt: diff --git a/.github/workflows/smoke.yml b/.github/workflows/smoke.yml index 55a5a2a..eb883c5 100644 --- a/.github/workflows/smoke.yml +++ b/.github/workflows/smoke.yml @@ -4,6 +4,13 @@ on: branches: - master pull_request: + paths: + - '.github/workflows/smoke**' + - '**Makefile' + - '**.go' + - '**.proto' + - 'go.mod' + - 'go.sum' jobs: smoke: @@ -20,6 +27,13 @@ jobs: - name: Check out code into the Go module directory 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 run: make diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 78d4220..fb8d0ec 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,6 +4,13 @@ on: branches: - master pull_request: + paths: + - '.github/workflows/test.yml' + - '**Makefile' + - '**.go' + - '**.proto' + - 'go.mod' + - 'go.sum' jobs: test-linux: @@ -20,6 +27,13 @@ jobs: - name: Check out code into the Go module directory 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 run: make all @@ -43,6 +57,13 @@ jobs: - name: Check out code into the Go module directory 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 run: go build ./cmd/nebula