Skip to content

Commit

Permalink
packages/api: Add version information to prometheus metrics (#1597)
Browse files Browse the repository at this point in the history
  • Loading branch information
hjpotter92 authored Jan 10, 2023
1 parent 03e9140 commit 149fc7d
Show file tree
Hide file tree
Showing 13 changed files with 1,584 additions and 1,652 deletions.
17 changes: 10 additions & 7 deletions packages/api/Dockerfile.dockerignore → .dockerignore
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
# Package to build
packages/*
!packages/api

# General git and node frameworks files
.git
.github
.cache
**/Dockerfile
**/.next
*/*/.next
**/node_modules
**/coverage
**/yarn-error.log
**/.next

# API-specific
*/*/minio
# Package to build
packages/*
!packages/api
!packages/www

*/*/dist
*/*/docs
*/*/minio
*/*/out
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,7 @@ insert_final_newline = true
[Makefile]
indent_style = tab
indent_size = 4

[Dockerfile]
indent_style = tab
indent_size = 8
88 changes: 0 additions & 88 deletions .github/workflows/api.yaml

This file was deleted.

98 changes: 98 additions & 0 deletions .github/workflows/docker.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
name: Docker build and push images

on:
pull_request:
push:
branches:
- master
tags:
- "v*"

concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
build:
name: ${{ matrix.build.package }} docker image generation
if:
github.event_name == 'push' ||
github.event.pull_request.head.repo.full_name == github.repository
permissions:
packages: write
contents: read
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
build:
- path: packages/www
image: livepeerci/www
package: www
- path: packages/api
image: livepeerci/api
package: api

steps:
- name: Check out code
uses: actions/[email protected]
with:
fetch-depth: 0
# Check https://github.com/livepeer/go-livepeer/pull/1891
# for ref value discussion
ref: ${{ github.event.pull_request.head.sha }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.CI_DOCKERHUB_USERNAME }}
password: ${{ secrets.CI_DOCKERHUB_TOKEN }}

- name: Log in to the Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}

- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: |
${{ matrix.build.image }}
ghcr.io/${{ github.repository }}/${{ matrix.build.package }}
tags: |
type=ref,event=branch
type=ref,event=tag
type=ref,event=pr
type=sha
type=sha,format=long
type=semver,pattern={{version}},prefix=v
type=semver,pattern={{major}}.{{minor}},prefix=v
type=raw,value=latest,enable={{is_default_branch}}
type=raw,value=${{ github.event.pull_request.head.ref }}
- name: Build and push livepeer docker image
uses: docker/build-push-action@v3
with:
build-args: |
VERSION=${{ (github.ref_type == 'tag' && github.ref_name) || (github.event.pull_request.head.sha || github.sha) }}
GITHUB_SHA=${{ (github.event.pull_request.head.sha || github.sha) }}
context: .
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
file: ${{ matrix.build.path }}/Dockerfile
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Notify new build upload
run: curl -X POST https://holy-bread-207a.livepeer.workers.dev
57 changes: 0 additions & 57 deletions .github/workflows/www.yaml

This file was deleted.

1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodejs 18.12.1
38 changes: 19 additions & 19 deletions packages/api/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
FROM node:16 as builder
WORKDIR /app
FROM node:16 as builder
WORKDIR /app

ENV NODE_ENV development
ENV NODE_ENV development

ADD packages/api/package.json yarn.lock ./
RUN yarn install --ignore-scripts --frozen-lockfile
COPY packages/api/package.json yarn.lock ./
RUN yarn install --ignore-scripts --frozen-lockfile

ADD packages/api/tsconfig.json .
ADD packages/api/src src
RUN yarn run prepare
COPY packages/api/tsconfig.json .
COPY packages/api/src src
RUN yarn run prepare

FROM node:16
FROM node:16
WORKDIR /app

ENV NODE_ENV production
ENV NODE_ENV production

ADD packages/api/package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY --from=builder /app/dist dist
COPY packages/api/package.json yarn.lock ./
RUN yarn install --frozen-lockfile
COPY --from=builder /app/dist dist

ARG VERSION
ENV VERSION ${VERSION}
ARG GITHUB_SHA
ENV GITHUB_SHA ${GITHUB_SHA}
ARG VERSION
ENV VERSION ${VERSION}
ARG GITHUB_SHA
ENV GITHUB_SHA ${GITHUB_SHA}

RUN node dist/cli.js --help
RUN node dist/cli.js --help

ENV LP_API_PORT 80
ENV LP_API_PORT 80
ENTRYPOINT ["node", "dist/cli.js"]
6 changes: 2 additions & 4 deletions packages/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,7 @@
"cloud-dev": "npm run docker && kubectl delete pod -l app.kubernetes.io/name=livepeer-api-server --wait && sleep 1 && kubectl logs -f --pod-running-timeout=30s $(kubectl get pods -o name -l app.kubernetes.io/name=livepeer-api-server)",
"cloud-dev:server": "nodemon -w src -x node -r esm src/cli.js --port 3040 --kubeBroadcasterService broadcaster --kubeOrchestratorService orchestrator --kubeNamespace default --kubeBroadcasterTemplate 'https://{{nodeName}}.livepeer-staging.live' --kubeOrchestratorTemplate 'https://{{nodeName}}.livepeer-staging.live:8935'",
"docker:build": "docker build $(printf ' -t livepeerci/api:%s' ${DOCKER_TAGS:-master}) --build-arg GITHUB_SHA --build-arg VERSION -f Dockerfile ../..",
"docker:push": "for TAG in ${DOCKER_TAGS:-dev}; do docker push livepeerci/api:${TAG}; done",
"docker": "run-s docker:build docker:push",
"postgres:start": "docker run --rm -d --name postgres -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 -v \"$(pwd)/data/postgres:/var/lib/postgresql/data\" postgres",
"postgres:start": "docker run --rm -d --name postgres -e POSTGRES_HOST_AUTH_METHOD=trust -p 5432:5432 -v \"$(pwd)/data/postgres:/var/lib/postgresql/data\" postgres:14-alpine",
"postgres:stop": "docker rm -f postgres",
"rabbitmq:start": "docker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_VHOST=livepeer rabbitmq@sha256:f0be9e47ec42081a36593dfc6604274a623caed074fc043e0a927fbd1533dc20",
"rabbitmq:stop": "docker rm -f rabbitmq",
Expand Down Expand Up @@ -138,7 +136,7 @@
"nyc": "^14.0.0",
"parcel": "^1.12.4",
"pkg": "^5.7.0",
"prettier": "^2.0.5",
"prettier": "^2.6.2",
"redoc-cli": "^0.8.3",
"tus-js-client": "^3.0.0-0",
"typescript": "^4.3.4",
Expand Down
Loading

0 comments on commit 149fc7d

Please sign in to comment.