Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop into main. #46

Merged
merged 6 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 13 additions & 11 deletions .github/workflows/build.yml → .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
name: Build
name: CI
on:
# NOTE: To comment SonarCloud coverage to GitHub Pull Request, we need to run the CI on pull requests.
pull_request:
types: [opened, synchronize, reopened]
push:
branches:
- '**'
pull_request:
types: [opened, reopened]

- develop
- main
jobs:
sonarcloud:
name: SonarCloud
test:
name: Test and upload coverage to SonarCloud
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Checkout
uses: actions/checkout@v4.1.1
with:
fetch-depth: 0

- name: Set up Go
uses: actions/setup-go@v2
uses: actions/setup-go@v5.0.0
with:
go-version: 1.17
go-version: 1.22.1

- name: Test
- name: Test with coverage
run: go test --tags=test -coverprofile=cover.out $(go list ./... | grep -v mxtransporter/cmd)

- name: SonarCloud Scan
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Release
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+-rc[0-9]+'
jobs:
publish-container-image:
name: Publish Container Image to GitHub Container Registry
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4.1.1

- name: Set up QEMU
uses: docker/setup-qemu-action@v3.0.0

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.2.0

- name: Login to GitHub Container Registry
uses: docker/login-action@v3.1.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Get metadata
id: get-metadata
uses: docker/metadata-action@v5.5.1
with:
images: ghcr.io/${{ github.repository }}
flavor: |
latest=true
tags: |
type=ref,event=tag

- name: Build and push
uses: docker/build-push-action@v5.3.0
with:
context: .
file: ./Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.get-metadata.outputs.tags }}
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
##
## Build
##
FROM golang:latest as build
FROM golang:1.22.1-bookworm as build

LABEL org.opencontainers.image.source="https://github.com/cam-inc/MxTransporter"

Expand All @@ -24,7 +24,7 @@ RUN go install ./cmd/health.go
##
## Deploy
##
FROM alpine:latest
FROM alpine:3.19.1

WORKDIR /go/src

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.local
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM golang:latest
FROM golang:1.22.1-bookworm

WORKDIR /go/src

Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

MxTransporter is a middleware that accurately carries change streams of MongoDB in real time. For infrastructure, you can easily use this middleware by creating a container image with Dockerfile on any platform and deploying it.

It is also possible to download and use container image without having to build them, as they are published on the [GitHub Container Registry](https://github.com/cam-inc/MxTransporter/pkgs/container/mxtransporter).

With MxTransporter, real-time data can be reproduced and retained on the data utilization side, and data utilization will become even more active.

:jp: Japanese version of the README is [here](/README_JP.md).

[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=cam-inc_MxTransporter&metric=coverage)](https://sonarcloud.io/summary/new_code?id=cam-inc_MxTransporter)
[![CI](https://github.com/cam-inc/MxTransporter/actions/workflows/ci.yml/badge.svg)](https://github.com/cam-inc/MxTransporter/actions/workflows/ci.yml)
[![Release](https://github.com/cam-inc/MxTransporter/actions/workflows/release.yaml/badge.svg)](https://github.com/cam-inc/MxTransporter/actions/workflows/release.yaml)
[![GitHub release](https://img.shields.io/github/release/cam-inc/MxTransporter.svg?style=flat-square)](https://github.com/cam-inc/MxTransporter/releases/latest)
<br>

# Features
Expand Down Expand Up @@ -269,8 +274,8 @@ It is basic JSON. It is possible to change the key of ChangeStream, add a Time f
<br>

# Contributors
| [<img src="https://avatars.githubusercontent.com/KenFujimoto12" width="130px;"/><br />Kenshirou](https://github.com/KenFujimoto12) <br /> | [<img src="https://avatars.githubusercontent.com/syama666" width="130px;"/><br />Yoshinori Sugiyama](https://github.com/syama666) <br /> |
| :---: | :---: |
| [<img src="https://avatars.githubusercontent.com/KenFujimoto12" width="130px;"/><br />Kenshirou](https://github.com/KenFujimoto12) <br /> | [<img src="https://avatars.githubusercontent.com/syama666" width="130px;"/><br />Yoshinori Sugiyama](https://github.com/syama666) <br /> |
| :---------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------: |
<br>


Expand Down
6 changes: 4 additions & 2 deletions README_JP.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

MxTransporter は MongoDB の Change Streams を正確に、リアルタイムで送信先に運ぶミドルウェアです。MxTransporter は、用意された Dockerfile からコンテナイメージを作成し、お好きな環境へデプロイすることで簡単に利用することができます。

また、[GitHub Container Registry](https://github.com/cam-inc/MxTransporter/pkgs/container/mxtransporter) 上にコンテナイメージを公開しているため、ビルドすることなく、コンテナイメージを取得して利用することも可能です。

MxTransporterにより、データ活用側でリアルタイムなデータを再現、保持でき、データ活用がより一層活発になるでしょう。

[![MIT License](http://img.shields.io/badge/license-MIT-blue.svg?style=flat)](LICENSE)
Expand Down Expand Up @@ -268,8 +270,8 @@ Change Streams をエクスポート先に送る前にフォーマットを整
<br>

# Contributors
| [<img src="https://avatars.githubusercontent.com/KenFujimoto12" width="130px;"/><br />Kenshirou](https://github.com/KenFujimoto12) <br /> | [<img src="https://avatars.githubusercontent.com/syama666" width="130px;"/><br />Yoshinori Sugiyama](https://github.com/syama666) <br /> |
| :---: | :---: |
| [<img src="https://avatars.githubusercontent.com/KenFujimoto12" width="130px;"/><br />Kenshirou](https://github.com/KenFujimoto12) <br /> | [<img src="https://avatars.githubusercontent.com/syama666" width="130px;"/><br />Yoshinori Sugiyama](https://github.com/syama666) <br /> |
| :---------------------------------------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------------------------------------: |
<br>


Expand Down
4 changes: 1 addition & 3 deletions docker-compose.mongo-replica.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
version: '3.8'

services:

mongodb-primary:
image: mongo
command:
Expand All @@ -22,7 +21,7 @@ services:

mongodb-secondary:
image: mongo
command:
command:
- --replSet
- rs0
volumes:
Expand All @@ -39,4 +38,3 @@ services:
expose:
- 27017
restart: always

5 changes: 2 additions & 3 deletions docker-compose.mxt-local.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
version: '3.8'

services:

mxt:
build:
context: '.'
Expand All @@ -21,12 +20,12 @@ services:
extends:
file: docker-compose.mongo-replica.yml
service: mongodb-primary

mongodb-secondary:
extends:
file: docker-compose.mongo-replica.yml
service: mongodb-secondary

mongodb-arbiter:
extends:
file: docker-compose.mongo-replica.yml
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/cam-inc/mxtransporter

go 1.17
go 1.22

require (
cloud.google.com/go/bigquery v1.18.0
Expand Down