From 7174c924b533951ba381a1808522706c6fe11f56 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Mon, 6 Dec 2021 17:33:53 +0000 Subject: [PATCH] Add build infra --- .github/renovate.json | 5 ++++ .github/workflows/build-docker-image.yaml | 32 +++++++++++++++++++++++ .github/workflows/release.yaml | 28 ++++++++++++++++++++ .gitignore | 1 + Dockerfile | 15 ++++++----- 5 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 .github/renovate.json create mode 100644 .github/workflows/build-docker-image.yaml create mode 100644 .github/workflows/release.yaml create mode 100644 .gitignore diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 0000000..f45d8f1 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,5 @@ +{ + "extends": [ + "config:base" + ] +} diff --git a/.github/workflows/build-docker-image.yaml b/.github/workflows/build-docker-image.yaml new file mode 100644 index 0000000..4d43d16 --- /dev/null +++ b/.github/workflows/build-docker-image.yaml @@ -0,0 +1,32 @@ +name: ci + +on: + push: + branches: + - "master" + tags: + - "[0-9]+.[0-9]+.[0-9]+" + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + - name: Login to GHCR + uses: docker/login-action@v1 + if: github.event_name != 'pull_request' + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + push: true + tags: | + ghcr.io/${{ github.repository_owner }}/aaisp-exporter:${{ github.ref_name }} + ghcr.io/${{ github.repository_owner }}/aaisp-exporter:latest diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..383c398 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,28 @@ +on: + release: + types: [created] + +jobs: + releases-matrix: + name: Release Go Binary + runs-on: ubuntu-latest + strategy: + matrix: + goos: [linux, windows, darwin] + goarch: ["386", amd64, arm64] + exclude: + - goarch: "386" + goos: darwin + - goarch: arm64 + goos: windows + steps: + - uses: actions/checkout@v2 + - uses: wangyoucao577/go-release-action@v1.22 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + goos: ${{ matrix.goos }} + goarch: ${{ matrix.goarch }} + goversion: "https://dl.google.com/go/go1.17.4.linux-amd64.tar.gz" + project_path: "./cmd/aaisp_exporter" + binary_name: "aaisp_exporter" + extra_files: LICENSE cmd/aaisp_exporter/README.md \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c987c88 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +aaisp_exporter \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 6746b24..d1b6802 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,10 @@ -FROM alpine +FROM golang:1.17.4-alpine3.15 as build +WORKDIR /build +COPY . . +RUN go get -d -v . +RUN go build -v ./cmd/aaisp_exporter . -COPY cmd/aaisp_exporter/aaisp_exporter /usr/local/bin/aaisp_exporter - -EXPOSE 8080 - -ENTRYPOINT ["/usr/local/bin/aaisp_exporter"] +FROM alpine:3.15.0 +WORKDIR /service +COPY --from=build /build/aaisp_exporter . +ENTRYPOINT ["./aaisp_exporter"]% \ No newline at end of file