]> git.lizzy.rs Git - hydra-dragonfire.git/commitdiff
docker build and workflow 3/head
authorBuckarooBanzay <BuckarooBanzay@users.noreply.github.com>
Fri, 23 Dec 2022 13:31:24 +0000 (14:31 +0100)
committerBuckarooBanzay <BuckarooBanzay@users.noreply.github.com>
Fri, 23 Dec 2022 13:31:24 +0000 (14:31 +0100)
.github/workflows/build.yml [new file with mode: 0644]
.github/workflows/test.yml [new file with mode: 0644]
Dockerfile [new file with mode: 0644]

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644 (file)
index 0000000..c81f29a
--- /dev/null
@@ -0,0 +1,59 @@
+name: build
+
+on:
+  push:
+    branches:
+      - 'master'
+    tags:
+      - 'v*'
+  pull_request:
+
+env:
+  REGISTRY: ghcr.io
+  IMAGE_NAME: ${{ github.repository }}
+
+jobs:
+  build:
+    runs-on: ubuntu-latest
+    timeout-minutes: 10
+
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v3
+        with:
+          fetch-depth: 0
+          submodules: recursive
+
+      - name: Set up Go
+        uses: actions/setup-go@v3.4.0
+        with:
+          go-version: 1.18
+
+      - name: Cache Go modules
+        uses: actions/cache@v3
+        with:
+          path: ~/go/pkg/mod
+          key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
+          restore-keys: |
+            ${{ runner.os }}-go-
+
+      - name: Log in to the Container registry
+        uses: docker/login-action@v2
+        with:
+          registry: ${{ env.REGISTRY }}
+          username: ${{ github.actor }}
+          password: ${{ secrets.GITHUB_TOKEN }}
+
+      - name: Extract metadata (tags, labels) for Docker
+        id: meta
+        uses: docker/metadata-action@v4
+        with:
+          images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
+
+      - name: Build and push Docker image (master)
+        uses: docker/build-push-action@v3
+        with:
+          context: .
+          push: true
+          tags: ${{ steps.meta.outputs.tags }}
+          labels: ${{ steps.meta.outputs.labels }}
\ No newline at end of file
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
new file mode 100644 (file)
index 0000000..21791d3
--- /dev/null
@@ -0,0 +1,27 @@
+name: test
+
+on: [push, pull_request]
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+
+    steps:
+    - name: Checkout
+      uses: actions/checkout@v3
+      with:
+        fetch-depth: 0
+        submodules: recursive
+
+    - name: Install Go
+      uses: actions/setup-go@v3
+      with:
+        go-version: 1.18.x
+
+    - name: Test
+      run: |
+        go test ./... -coverprofile=profile.cov
+
+    - uses: shogo82148/actions-goveralls@v1.6.0
+      with:
+        path-to-profile: profile.cov
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644 (file)
index 0000000..3c568c0
--- /dev/null
@@ -0,0 +1,9 @@
+FROM golang:1.18.9 as builder
+WORKDIR /app
+COPY . .
+RUN go test ./... &&\
+    CGO_ENABLED=0 go build .
+
+FROM scratch
+COPY --from=builder /app/hydra-dragonfire /bin/hydra-dragonfire
+ENTRYPOINT ["/bin/hydra-dragonfire"]