-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: docker publish GitHub actions (#1)
* added compose * edit commands * edited commands * fix exec cmd * added sleep to await migration * show logs * added lazy-indexer * update * test fix * testFIx1 * updated req * updated req --------- Co-authored-by: Gabriel Temtsen <[email protected]>
- Loading branch information
1 parent
51db1ed
commit 7d7f0b5
Showing
3 changed files
with
123 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
name: Build, Test, and Publish Docker Image | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
# Step 1: Checkout the repository | ||
- name: Checkout repository | ||
uses: actions/checkout@v3 | ||
|
||
# Step 2: Set up Docker Buildx | ||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v2 | ||
|
||
# Step 3: Set up Docker Compose | ||
- name: Set up Docker Compose | ||
run: sudo apt-get install docker-compose | ||
|
||
# Step 4: Build and start services using Docker Compose | ||
- name: Build and Start Docker Compose | ||
run: docker-compose up --build -d | ||
|
||
# Step 5: Wait for PostgreSQL to be ready | ||
- name: Wait for PostgreSQL | ||
run: | | ||
until docker-compose exec -T postgres pg_isready -h postgres -U indexer -d indexer; do | ||
echo "Waiting for PostgreSQL..."; | ||
sleep 3; | ||
done | ||
# Step 6: Check Lazy Indexer logs (optional for debugging) | ||
- name: Check Lazy Indexer logs | ||
run: docker-compose logs lazy-indexer | ||
|
||
# Step 7: Retry migration for Lazy Indexer | ||
- name: Run migration | ||
run: | | ||
for i in {1..10}; do | ||
docker-compose exec -T lazy-indexer yarn migrate && break || (echo "Retrying migration in 5 seconds..." && sleep 5); | ||
done | ||
# Step 8: Log in to Docker Hub using secrets | ||
- name: Log in to Docker Hub | ||
uses: docker/login-action@v2 | ||
with: | ||
username: ${{ secrets.DOCKER_USERNAME }} | ||
password: ${{ secrets.DOCKER_PASSWORD }} | ||
|
||
# Step 9: Push the Docker image to Docker Hub using the secret username | ||
- name: Build and Push Docker image | ||
uses: docker/build-push-action@v5 | ||
with: | ||
context: . | ||
push: true | ||
tags: ${{ secrets.DOCKER_USERNAME }}/lazy-indexer:latest-1 | ||
|
||
# Step 10: Verify the image exists on Docker Hub using the secret username | ||
- name: Image exists on Docker Hub | ||
run: docker pull ${{ secrets.DOCKER_USERNAME }}/lazy-indexer:latest-1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Use Node.js version 20 with Alpine as the base image | ||
FROM node:20-alpine | ||
|
||
# Set the working directory in the container | ||
WORKDIR /app | ||
|
||
# Copy package.json and yarn.lock to the container | ||
COPY package.json yarn.lock ./ | ||
|
||
# Install dependencies | ||
RUN yarn install | ||
|
||
# Copy all source files to the container | ||
COPY . . | ||
|
||
|
||
# Expose the port (if required by the application) | ||
EXPOSE 3005 | ||
|
||
|
||
# Run the backfill and stream concurrently | ||
CMD ["sh", "-c", "yarn backfill & yarn stream"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters