diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 0900e8c..c2835c6 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -21,11 +21,8 @@ jobs: go-version: ^1.15 id: go - - name: Check out code into the Go module directory + - name: Check out code uses: actions/checkout@v2 - - name: Get dependencies - run: go get -v -t -d ./cmd/ - - name: Build - run: go build -o delete-dynamodb-items -v ./cmd/ + run: make compile diff --git a/.gitignore b/.gitignore index 66fd13c..7d90237 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *.dll *.so *.dylib +/delete-dynamodb-items # Test binary, built with `go test -c` *.test diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d389996 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +compile: + go build -o delete-dynamodb-items -v ./cmd/ + +runTestDynamoDB: + docker-compose -f dynamodb-docker-compose.yml up -d + +loadTestData: + ./generate_mass_data.sh 500 diff --git a/dynamodb-docker-compose.yml b/dynamodb-docker-compose.yml new file mode 100644 index 0000000..efea325 --- /dev/null +++ b/dynamodb-docker-compose.yml @@ -0,0 +1,27 @@ +version: '3.8' +services: + + dynamodb: + image: amazon/dynamodb-local + container_name: dynamodb + ports: + - "8002:8000" + command: ["-jar", "DynamoDBLocal.jar", "-sharedDb", "-inMemory"] + networks: + - dynamodb-net + + dynamodb-admin: + image: aaronshaf/dynamodb-admin + container_name: dynamodb-admin + ports: + - "8001:8001" + environment: + - DYNAMO_ENDPOINT=http://dynamodb:8000 + networks: + - dynamodb-net + depends_on: + - dynamodb + +networks: + dynamodb-net: + name: dynamodb-net diff --git a/generate_mass_data.sh b/generate_mass_data.sh index 64b302b..591ce0b 100755 --- a/generate_mass_data.sh +++ b/generate_mass_data.sh @@ -4,7 +4,7 @@ num_items="${1}" table_name="mass-data" -aws dynamodb create-table --table-name "${table_name}" --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --billing-mode PAY_PER_REQUEST --endpoint-url http://127.0.0.1:8002 +aws dynamodb create-table --table-name "${table_name}" --attribute-definitions AttributeName=id,AttributeType=S --key-schema AttributeName=id,KeyType=HASH --billing-mode PAY_PER_REQUEST --endpoint-url http://127.0.0.1:8002 --no-cli-pager items_preamble="{\"${table_name}\": [" items_middle=""