From b4e1cb9c9a644b1daea0f6e11e935602410460d2 Mon Sep 17 00:00:00 2001 From: kkb0318 Date: Tue, 23 Apr 2024 21:59:56 +0900 Subject: [PATCH] ci --- .github/workflows/ci.yaml | 16 +++++++ .github/workflows/release.yaml | 76 ++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 .github/workflows/ci.yaml create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 0000000..77c696c --- /dev/null +++ b/.github/workflows/ci.yaml @@ -0,0 +1,16 @@ +name: CI +on: + pull_request: + push: + branches: + - "main" +jobs: + test: + name: Unit, Integration Test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version-file: go.mod + - run: make test diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..53245a6 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,76 @@ +name: build-docker-image + +on: + push: + tags: + - "[0-2].[0-9]+.[0-9]+*" + workflow_dispatch: + +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} + +jobs: + build-and-push-image: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # For multi platform build. See https://docs.docker.com/build/ci/github-actions/multi-platform/ + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=semver,pattern={{version}} + - name: Login to Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.PAT }} + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 + chart-release: + runs-on: ubuntu-20.04 + needs: build-and-push-image + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Configure Git + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + - name: Install Helm + uses: azure/setup-helm@v3 + - name: sed + run: | + sed -i "s/CHART_VERSION/${{ github.ref_name }}/" charts/kom/Chart.yaml + sed -i "s/APP_VERSION/${{ github.ref_name }}/" charts/kom/Chart.yaml + sed -i "s/APP_VERSION/${{ github.ref_name }}/" charts/kom/values.yaml + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.6.0 + with: + config: cr.yaml + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"