Skip to content

[#128] update go.mod/go.sum #97

[#128] update go.mod/go.sum

[#128] update go.mod/go.sum #97

Workflow file for this run

# This workflow will build a golang project
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go
name: Go
on:
push:
branches: [ "**" ]
pull_request:
branches: [ "**" ]
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
go: [ '1.22.0', '1.22.2' ]
dynamodb-local: [ '2.3.0' ]
s3mock: [ '3.6.0' ]
elasticsearch-v7: [ '7.17.20' ]
elasticsearch-v8: [ '8.13.0' ]
mongo: [ '7.0.8' ]
redis: [ '7.2.4' ]
mysql: [ '5.7.44', '8.3.0' ]
postgres: [ '16.2-alpine' ]
name: golang:${{ matrix.go }}, amazon/dynamodb-local:${{ matrix.dynamodb-local }}, adobe/s3mock:${{ matrix.s3mock }}, elasticsearch:${{ matrix.elasticsearch-v7 }}, elasticsearch:${{ matrix.elasticsearch-v8 }}, mongo:${{ matrix.mongo }}, redis:${{ matrix.redis }}, mysql:${{ matrix.mysql }}, postgres:${{ matrix.postgres }}
steps:
- uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
- name: Docker Setup Docker
uses: crazy-max/ghaction-setup-docker@v3.1.0
- name: Run docker image
run: |
docker run --name dynamodb --detach --publish 8000:8000 --env "-jar DynamoDBLocal.jar -sharedDb -inMemory" amazon/dynamodb-local:${{ matrix.dynamodb-local }}
docker run --name s3mock --detach --publish 9090:9090 -p 9191:9191 adobe/s3mock:${{ matrix.s3mock }}
docker run --name elasticsearch-v7 --detach --publish 19200:9200 -p 19300:9300 --env discovery.type=single-node --env ES_JAVA_OPTS="-Xms500m -Xmx500m" elasticsearch:${{ matrix.elasticsearch-v7 }}
docker network create elastic
docker run --name elasticsearch-v8 --net elastic --detach --publish 29200:9200 -p 29300:9300 --env discovery.type=single-node --env ES_JAVA_OPTS="-Xms500m -Xmx500m" --env xpack.security.enabled=false elasticsearch:${{ matrix.elasticsearch-v8 }}
docker run --name mongodb --detach --publish 27017:27017 mongo:${{ matrix.mongo }}
docker run --name redis --detach --publish 6379:6379 redis:${{ matrix.redis }}
docker run --name mysql --detach --publish 3306:3306 --env MYSQL_ROOT_PASSWORD=root mysql:${{ matrix.mysql }}
docker run --name postgres --detach --publish 5432:5432 --env POSTGRES_PASSWORD=postgres postgres:${{ matrix.postgres }}
- name: Sleep for 20 seconds
run: sleep 20s
shell: bash
- name: Test
run: go clean -testcache && go test -coverprofile=coverage.out -cover ./...
- name: Coverage
run: go tool cover -html=./coverage.out -o ./coverage.html