From 31899fd4c9568dc47692ca2eeceaaa11571f9a4f Mon Sep 17 00:00:00 2001 From: Joel Smith Date: Mon, 20 May 2024 10:47:52 -0500 Subject: [PATCH] ci: go build and test (#19) --- .github/workflows/build-and-test.yml | 69 ++++++++++++++++++++++++++++ main.go | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/build-and-test.yml diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 0000000..31c1437 --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,69 @@ +# This workflow will ensure the project is tidy, buildable and all tests pass +# on every push to the main branch and on every pull request. +# +name: Build and Test + +on: + push: + paths: + - "**.go" + - "go.sum" + branches: [main, master] + pull_request: + paths: + - "**.go" + - "go.sum" + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +env: + GO_VERSION: 1.21 + +jobs: + + # Check if the go.mod file is tidy + tidy: + runs-on: ubuntu-latest + name: tidy + steps: + - uses: actions/checkout@v4 + - name: Setup go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + - run: | + go mod tidy + CHANGES_IN_REPO=$(git status --porcelain) + if [[ -n "$CHANGES_IN_REPO" ]]; then + echo "Repository is dirty. Showing 'git status' and 'git --no-pager diff':" + git status && git --no-pager diff + exit 1 + fi + + # Build and compile the go project + build: + runs-on: ubuntu-latest + name: build + steps: + - uses: actions/checkout@v4 + - name: Setup go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + - run: go build ./... + + # Run all standard, go tests + test: + runs-on: ubuntu-latest + name: test + steps: + - name: Install Go + uses: actions/setup-go@v4 + with: + go-version: ${{ env.GO_VERSION }} + - name: Checkout code + uses: actions/checkout@v4 + - name: Test + run: go test ./... \ No newline at end of file diff --git a/main.go b/main.go index 2ca0d5e..7279336 100644 --- a/main.go +++ b/main.go @@ -5,5 +5,5 @@ import ( ) func main() { - fmt.Println("Hello, World!") + fmt.Println("Hello, Cosmos!") }