Skip to content

Commit

Permalink
Add firehose-core (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
Salka1988 authored Apr 23, 2024
1 parent 52fe08d commit 48dccc0
Show file tree
Hide file tree
Showing 2,577 changed files with 173,176 additions and 256,802 deletions.
4 changes: 0 additions & 4 deletions .env

This file was deleted.

7 changes: 4 additions & 3 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build ad publish Docker image
name: Build and publish Docker image

on:
push:
Expand Down Expand Up @@ -28,5 +28,6 @@ jobs:
with:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
image: ghcr.io/fuellabs/fuel-graph-node
dockerfile: fuel-graph-node/Dockerfile
image: ghcr.io/fuellabs/fuel-subgraph
dockerfile: firehose/Dockerfile
context: firehose
5 changes: 4 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ version: "3"
services:
firehose:
build:
context: ./firehose
context: firehose
dockerfile: Dockerfile
# image: 'ghcr.io/fuellabs/fuel-subgraph:cc2be21'
# platform: linux/amd64
ports:
- "10015:10015"
- "10016:10016"
Expand Down
20 changes: 0 additions & 20 deletions docker-graph-config.toml

This file was deleted.

37 changes: 21 additions & 16 deletions firehose/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,31 +1,36 @@
# extractor

# Stage 1: Use cargo-chef to generate a recipe
FROM lukemathwalker/cargo-chef:latest-rust-1.76-slim AS chef

WORKDIR /app

# Stage 2: Planner
FROM chef AS planner
COPY ./firehose-extract/ .
COPY ./firehose-extract/ /app/
RUN cargo chef prepare --recipe-path recipe.json

# Stage 3: Extract builder
FROM chef AS extract_builder
RUN apt update && apt install -y protobuf-compiler
COPY --from=planner /app/recipe.json recipe.json
# Build dependencies - this is the caching Docker layer!
RUN cargo chef cook --release --recipe-path recipe.json
# Build application
COPY ./firehose-extract/ .
COPY ./firehose-extract/ /app/
RUN cargo build --release

# firefuel
FROM golang:1.22.1 AS builder
COPY ./firehose-fuel/ .
RUN GOBIN=/ go install ./cmd/firefuel

# Stage 4: Go build
FROM golang:1.22-alpine as go_build
COPY ./firehose-core/ /app/firehose-core/
COPY ./substreams/ /app/substreams/
WORKDIR /app/firehose-core
RUN go mod download
ARG VERSION="dev"
RUN apk --no-cache add git
RUN go build -v -ldflags "-X main.version=${VERSION}" -o /app/firehose-core/firecore ./cmd/firecore

# Stage 5: Final stage
FROM debian
COPY --from=extract_builder /app/target/release/firehose-extract /app/firehose-extract
COPY --from=builder firefuel /app/firefuel

COPY ./firehose-fuel/devel/fuelfire/bootstrap.sh /app/start.sh
COPY --from=go_build /app/firehose-core/firecore /app/firecore
COPY --from=go_build /app/firehose-core/devel/standard/bootstrap.sh /app/start.sh
RUN chmod +x /app/start.sh

ENTRYPOINT ["/app/start.sh"]
# Additional setup if needed
ENTRYPOINT [ "/app/start.sh" ]
82 changes: 82 additions & 0 deletions firehose/firehose-core/.github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Build docker image

on:
push:
tags:
- "v*"
branches:
- "develop"
- "feature/*"
workflow_dispatch:

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build:
runs-on: ubuntu-20.04

permissions:
contents: read
packages: write

outputs:
tags: ${{ steps.meta.outputs.tags }}

steps:
- uses: actions/checkout@v3

- uses: actions/setup-go@v5
with:
go-version: '1.22.x'

- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Get go pseudohash
id: extract_pseudohash
shell: bash
run: |
echo "GO_PSEUDOHASH=$(go list -f '{{.Version}}' -m github.com/streamingfast/firehose-core@${{ github.sha }})" | tee $GITHUB_ENV
- name: Generate docker tags/labels from github build context
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=ref,event=tag
type=sha,prefix=,enable=true
type=raw,value=${{ env.GO_PSEUDOHASH }}
type=raw,enable=${{ github.ref == 'refs/heads/develop' }},value=develop
flavor: |
latest=${{ startsWith(github.ref, 'refs/tags/') }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
with:
context: .
build-args: |
VERSION=${{ github.event.ref }}
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}


slack-notifications:
if: ${{ !startsWith(github.ref, 'refs/tags/') && github.event_name != 'workflow_dispatch' }}
needs: [ build ]
runs-on: ubuntu-20.04
steps:
- name: Slack notification
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
uses: Ilshidur/[email protected]
with:
args: |
:done: *${{ github.repository }}* Success building docker image from ${{ github.ref_type }} _${{ github.ref_name }}_ (${{ github.actor }}) :sparkling_heart: ```${{ join(needs.build.outputs.tags, ' ') }}```
7 changes: 7 additions & 0 deletions firehose/firehose-core/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
.idea
/build
/dist
.envrc
.env
.DS_Store
firehose-data*
6 changes: 6 additions & 0 deletions firehose/firehose-core/.sfreleaser
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
global:
binary: firecore
language: golang
variant: application
release:
goreleaser-docker-image: goreleaser/goreleaser-cross:v1.22
Loading

0 comments on commit 48dccc0

Please sign in to comment.