From 4ef57f146a9de77031127f0cb17e8b84a013d875 Mon Sep 17 00:00:00 2001 From: Emanuele Fumagalli Date: Fri, 22 Sep 2023 17:19:07 +0100 Subject: [PATCH] Added GH actions --- .github/dependabot.yml | 8 ++++ .github/workflows/ghcr-build-push.yml | 66 +++++++++++++++++++++++++++ Dockerfile | 21 +++++++++ 3 files changed, 95 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/ghcr-build-push.yml create mode 100644 Dockerfile diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..8a2e4b5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + - package-ecosystem: gomod + directory: "/" + schedule: + interval: daily + labels: + - "🤖 Dependencies" diff --git a/.github/workflows/ghcr-build-push.yml b/.github/workflows/ghcr-build-push.yml new file mode 100644 index 0000000..86348df --- /dev/null +++ b/.github/workflows/ghcr-build-push.yml @@ -0,0 +1,66 @@ +name: Publish GH Repo Stats server Docker image to GHCR + +on: + workflow_dispatch: + push: + branches: + - main + +env: + REGISTRY: ghcr.io + IMAGE_NAME: emanuelef/gh-repo-stats-server + VERSION_NUMBER: latest + +jobs: + push_to_registry: + name: Push Docker image to GH registry + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + id-token: write + steps: + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: | + echo "$GITHUB_CONTEXT" + + - name: create a custom version using run number offset by 1000 (run_number + 1000) + run: | + echo "VERSION_NUMBER=$((1000+GITHUB_RUN_NUMBER))" >> $GITHUB_ENV + + - name: Check out the repo + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub container registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + 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 }} + tags: | + type=raw,value={{date 'YYYYMMDD'}}-${{ env.VERSION_NUMBER }} + type=raw,value=latest + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + platforms: linux/amd64,linux/arm64 + file: ./Dockerfile + push: true + #platforms: linux/amd64,linux/arm/v7,linux/arm64 + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..9b4df04 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,21 @@ +FROM golang:1.21.1-alpine as builder +WORKDIR /app +COPY app ./app +COPY position ./position +COPY client ./client +COPY mongo ./mongo +COPY utils ./utils +COPY go.mod . +COPY go.sum . +RUN go mod download +RUN go build -o air-tr ./app/main.go + +FROM alpine:latest AS runner +WORKDIR /app +COPY app/CBAD29136431F1561C2FD46073567A72.txt . +ENV OTEL_SERVICE_NAME=AirTr +ENV OTEL_EXPORTER_OTLP_ENDPOINT=https://api.honeycomb.io:443 +ENV OTEL_EXPORTER_OTLP_HEADERS=x-honeycomb-team=NMqf4vWfg4QkgHjeIBRj7d +COPY --from=builder /app/air-tr . +EXPOSE 8099 +ENTRYPOINT ["./air-tr"] \ No newline at end of file