diff --git a/.github/workflows/production.yaml b/.github/workflows/production.yaml new file mode 100644 index 0000000..c24d697 --- /dev/null +++ b/.github/workflows/production.yaml @@ -0,0 +1,38 @@ +name: Production +on: + push: + tags: + - 'v[0-9]+.[0-9]+.[0-9]+' # Runs only on semantic versioning tags (vMAJOR.MINOR.PATCH) + +env: + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + +jobs: + deploy: + name: "Build docker and publish to ECR" + runs-on: ubuntu-latest + + steps: + - name: Check out code + uses: actions/checkout@v4 + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v4 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v2 + + - name: Build, tag, and push image to Amazon ECR + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + ECR_REPOSITORY: assets/assets-api + run: | + docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:${{ github.ref_name }} . + docker push $ECR_REGISTRY/$ECR_REPOSITORY:${{ github.ref_name }} \ No newline at end of file diff --git a/.github/workflows/staging.yaml b/.github/workflows/staging.yaml index cc3cc25..81bf240 100644 --- a/.github/workflows/staging.yaml +++ b/.github/workflows/staging.yaml @@ -1,7 +1,7 @@ name: Staging on: - pull_request: + push: branches: - main paths: diff --git a/packages/api/Dockerfile b/packages/api/Dockerfile index bb3f547..5c07adb 100644 --- a/packages/api/Dockerfile +++ b/packages/api/Dockerfile @@ -12,11 +12,13 @@ RUN go build -o ./build/bin/api ./cmd/main.go FROM alpine +ARG SERVER_PORT=8000 + COPY --from=builder go/src/api/build/bin/api /usr/local/bin WORKDIR /usr/local/bin -EXPOSE 8000 +EXPOSE ${SERVER_PORT} RUN apk --no-cache add ca-certificates diff --git a/packages/api/pkg/service/service.go b/packages/api/pkg/service/service.go index 4717537..4929350 100644 --- a/packages/api/pkg/service/service.go +++ b/packages/api/pkg/service/service.go @@ -52,7 +52,6 @@ func NewService(assetsApp *app.AssetsApp, polkadotMiddleware *polkadotMiddleware } func (srv *Service) Setup() { - router := chi.NewRouter() cfg := srv.assetsApp.Config() router.Use(middleware.Recoverer) @@ -66,6 +65,10 @@ func (srv *Service) Setup() { MaxAge: 300, }).Handler) + router.Get("/health", func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(http.StatusOK) + }) + router.Get("/nonce", srv.CreateToken) router.With(httpin.NewInput(model.UploadImageInput{})).Post("/upload", srv.UploadImage) router.With(