diff --git a/.github/workflows/test-aws.yaml b/.github/workflows/test-aws.yaml index bdc25e89..06a19ffd 100644 --- a/.github/workflows/test-aws.yaml +++ b/.github/workflows/test-aws.yaml @@ -28,6 +28,26 @@ jobs: os: [ ubuntu-22.04 ] runs-on: ${{ matrix.os }} timeout-minutes: 10 + services: + minio: + image: mosuka/minio:latest + ports: + - 29000:9000 + env: + MINIO_ROOT_USER: DUMMYACCESSKEYEXAMPLE + MINIO_ROOT_PASSWORD: DUMMYSECRETKEYEXAMPLE + AWS_DEFAULT_REGION: ap-northeast-1 + AWS_EC2_METADATA_DISABLED: true + elasticmq: + image: softwaremill/elasticmq:latest + ports: + - 29324:29324 + env: + JAVA_OPTS: "-Dconfig.override_with_env_vars=true" + CONFIG_FORCE_node-address_port: 29324 + CONFIG_FORCE_rest-sqs_bind-port: 29324 + CONFIG_FORCE_queues_test-queue_fifo: false + CONFIG_FORCE_queues_test-2-queue_fifo: false steps: - name: Checkout code uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 @@ -37,16 +57,38 @@ jobs: uses: actions/setup-go@3041bf56c941b39c61721a86cd11f3bb1338122a # v5.2.0 with: go-version: ${{ matrix.go-version }} + cache-dependency-path: | + ${{ env.testdir }}/go.sum + - id: install-minio-cli + uses: yakubique/setup-minio-cli@d9826c1ad14228495203415557139d4cf491bed9 # v1.0.0 - name: Download Go modules working-directory: ${{ env.testdir }} shell: bash run: go mod download - - name: Setup Docker + - name: Run DynamoDB + run: docker run -d -p 28002:28002 amazon/dynamodb-local:latest -jar DynamoDBLocal.jar -sharedDb -dbPath ./data -port 28002 + - name: Migrate DynamoDB + timeout-minutes: 1 working-directory: ${{ env.testdir }} env: - DOCKER_BUILDKIT: 1 + AWS_ACCESS_KEY_ID: DUMMYACCESSKEYEXAMPLE + AWS_SECRET_ACCESS_KEY: DUMMYSECRETKEYEXAMPLE + AWS_DEFAULT_REGION: ap-northeast-1 + shell: bash + run: | + until (aws dynamodb list-tables --endpoint-url http://127.0.0.1:28002 --output text) do echo '...waiting...' && sleep 1; done; + aws dynamodb create-table --cli-input-json file:///${{ github.workspace }}/aws/docker/dynamodb/table_test.json --endpoint-url http://127.0.0.1:28002 + until (aws dynamodb describe-table --table-name test --endpoint-url http://127.0.0.1:28002 --output text) do echo '...waiting...' && sleep 1; done; + - name: Migrate Minio + timeout-minutes: 1 + working-directory: ${{ env.testdir }} + shell: bash run: | - docker compose up -d --wait --wait-timeout 30 + mc alias set s3 http://127.0.0.1:29000 DUMMYACCESSKEYEXAMPLE DUMMYSECRETKEYEXAMPLE + mc --quiet mb s3/test + mc --quiet anonymous set upload s3/test + mc --quiet anonymous set download s3/test + mc --quiet policy set-json /policies/policy_test.json s3/test - name: Test working-directory: ${{ env.testdir }} run: | diff --git a/aws/compose.yaml b/aws/compose.yaml index 70ff784e..f5e9016d 100644 --- a/aws/compose.yaml +++ b/aws/compose.yaml @@ -8,7 +8,7 @@ services: volumes: - ./docker/sqs_elasticmq/opt/elasticmq.conf:/opt/elasticmq.conf:ro minio: - image: minio/minio:latest + image: quay.io/minio/minio:latest container_name: go_utils_minio_ci ports: - "29000:9000" @@ -18,16 +18,9 @@ services: - AWS_DEFAULT_REGION=ap-northeast-1 - AWS_EC2_METADATA_DISABLED=true entrypoint: sh - command: -c " - minio server /data; - " + command: -c "minio server /data;" volumes: - ./docker/minio/data:/data - healthcheck: - test: [ "CMD", "mc", "ready", "local" ] - interval: 5s - timeout: 5s - retries: 5 miniocreatebuckets: image: minio/mc container_name: go_utils_minio_init_ci