Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync from main to dev #58

Closed
wants to merge 26 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 0 additions & 95 deletions .circleci/config.yml

This file was deleted.

13 changes: 13 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: ci

on:
pull_request:
branches:
- '**'

jobs:
lint_test:
uses: babylonlabs-io/.github/.github/workflows/[email protected]
with:
run-build: true
run-unit-tests: true
118 changes: 118 additions & 0 deletions .github/workflows/publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: docker_publish

on:
push:
branches:
- 'main'
- 'dev'
tags:
- '*'

jobs:
lint_test:
uses: babylonlabs-io/.github/.github/workflows/[email protected]
with:
run-build: true
run-unit-tests: true

docker_build:
needs: [lint_test]
runs-on: ubuntu-22.04
strategy:
matrix:
environment: [devnet, staging, testnet, mainnet-private, mainnet]
environment: ${{ matrix.environment }}
steps:
- name: Checkout repository
uses: actions/checkout@v4

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

- name: Build Docker image
uses: docker/build-push-action@v6
with:
tags: simple-staking:${{ github.sha }}
outputs: type=docker,dest=/tmp/simple-staking-${{ matrix.environment }}.tar
build-args: |
NEXT_PUBLIC_MEMPOOL_API=${{ vars.NEXT_PUBLIC_MEMPOOL_API }}
NEXT_PUBLIC_API_URL=${{ vars.NEXT_PUBLIC_API_URL }}
NEXT_PUBLIC_NETWORK=${{ vars.NEXT_PUBLIC_NETWORK }}
NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=${{ vars.NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES }}

- name: Upload Docker image to workspace
uses: actions/upload-artifact@v4
with:
name: simple-staking-${{ matrix.environment }}
path: /tmp/simple-staking-${{ matrix.environment }}.tar

dockerhub_publish:
runs-on: ubuntu-22.04
strategy:
matrix:
environment: [devnet, staging, testnet, mainnet-private, mainnet]
needs: ["docker_build"]
steps:
- name: Download Docker image from workspace
uses: actions/download-artifact@v4
with:
name: simple-staking-${{ matrix.environment }}
path: /tmp/

- name: Load Docker image
run: docker load -i /tmp/simple-staking-${{ matrix.environment }}.tar

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Push Docker image with SHA
run: |
docker tag simple-staking:${{ github.sha }} ${{ vars.DOCKERHUB_REGISTRY_ID }}/simple-staking:${{ github.sha }}-${{ matrix.environment }}
docker push ${{ vars.DOCKERHUB_REGISTRY_ID }}/simple-staking:${{ github.sha }}-${{ matrix.environment }}

- name: Push Docker image with Tag
if: startsWith(github.ref, 'refs/tags/')
run: |
docker tag simple-staking:${{ github.sha }} ${{ vars.DOCKERHUB_REGISTRY_ID }}/simple-staking:${{ github.ref_name }}-${{ matrix.environment }}
docker push ${{ vars.DOCKERHUB_REGISTRY_ID }}/simple-staking:${{ github.ref_name }}-${{ matrix.environment }}

ecr_publish:
runs-on: ubuntu-22.04
strategy:
matrix:
environment: [devnet, staging, testnet, mainnet-private, mainnet]
needs: ["docker_build"]
steps:
- name: Download Docker image from workspace
uses: actions/download-artifact@v4
with:
name: simple-staking-${{ matrix.environment }}
path: /tmp/

- name: Load Docker image
run: docker load -i /tmp/simple-staking-${{ matrix.environment }}.tar

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ vars.AWS_ECR_REGION }}

- name: Login to Amazon ECR Private
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2

- name: Push Docker image with SHA
run: |
docker tag simple-staking:${{ github.sha }} ${{ vars.AWS_ECR_REGISTRY_ID }}/simple-staking:${{ github.sha }}-${{ matrix.environment }}
docker push ${{ vars.AWS_ECR_REGISTRY_ID }}/simple-staking:${{ github.sha }}-${{ matrix.environment }}

- name: Push Docker image with Tag
if: startsWith(github.ref, 'refs/tags/')
run: |
docker tag simple-staking:${{ github.sha }} ${{ vars.AWS_ECR_REGISTRY_ID }}/simple-staking:${{ github.ref_name }}-${{ matrix.environment }}
docker push ${{ vars.AWS_ECR_REGISTRY_ID }}/simple-staking:${{ github.ref_name }}-${{ matrix.environment }}
27 changes: 14 additions & 13 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,17 +13,20 @@
COPY tsconfig.json .
COPY tailwind.config.ts .
COPY postcss.config.js .
COPY docker-entrypoint.sh .

# We replace NEXT_PUBLIC_* variables here with placeholders
# as next.js automatically replaces those during building
# Later the docker-entrypoint.sh script finds such variables and replaces them
# with the docker environment variables we have set
RUN NEXT_PUBLIC_MEMPOOL_API=APP_NEXT_PUBLIC_MEMPOOL_API \
NEXT_PUBLIC_API_URL=APP_NEXT_PUBLIC_API_URL \
NEXT_PUBLIC_NETWORK=APP_NEXT_PUBLIC_NETWORK \
NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=APP_NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES \
npm run build

ARG NEXT_PUBLIC_MEMPOOL_API
ENV NEXT_PUBLIC_MEMPOOL_API=${NEXT_PUBLIC_MEMPOOL_API}

ARG NEXT_PUBLIC_API_URL
ENV NEXT_PUBLIC_API_URL=${NEXT_PUBLIC_API_URL}

ARG NEXT_PUBLIC_NETWORK
ENV NEXT_PUBLIC_NETWORK=${NEXT_PUBLIC_NETWORK}

ARG NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES
ENV NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES=${NEXT_PUBLIC_DISPLAY_TESTING_MESSAGES}

RUN npm run build

# Step 2. Production image, copy all the files and run next
FROM node:22-alpine3.19 AS runner
Expand All @@ -35,7 +38,6 @@
RUN adduser --system --uid 1001 nextjs
USER nextjs

COPY --from=builder --chown=nextjs:nodejs /app/docker-entrypoint.sh ./docker-entrypoint.sh
COPY --from=builder /app/public ./public

# Automatically leverage output traces to reduce image size
Expand All @@ -44,8 +46,7 @@
COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static

# Uncomment the following line to disable telemetry at run time
ENV NEXT_TELEMETRY_DISABLED 1

Check warning on line 49 in Dockerfile

View workflow job for this annotation

GitHub Actions / docker_build (devnet)

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/

Check warning on line 49 in Dockerfile

View workflow job for this annotation

GitHub Actions / docker_build (staging)

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/

Check warning on line 49 in Dockerfile

View workflow job for this annotation

GitHub Actions / docker_build (testnet)

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/

Check warning on line 49 in Dockerfile

View workflow job for this annotation

GitHub Actions / docker_build (mainnet-private)

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/

Check warning on line 49 in Dockerfile

View workflow job for this annotation

GitHub Actions / docker_build (mainnet)

Legacy key/value format with whitespace separator should not be used

LegacyKeyValueFormat: "ENV key=value" should be used instead of legacy "ENV key value" format More info: https://docs.docker.com/go/dockerfile/rule/legacy-key-value-format/

ENTRYPOINT ["/app/docker-entrypoint.sh"]
CMD ["node", "server.js"]
STOPSIGNAL SIGTERM
15 changes: 0 additions & 15 deletions docker-entrypoint.sh

This file was deleted.

4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "simple-staking",
"version": "0.2.30",
"version": "0.2.31",
"private": true,
"scripts": {
"dev": "next dev",
Expand Down
2 changes: 1 addition & 1 deletion src/app/components/Connect/ConnectSmall.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export const ConnectSmall: React.FC<ConnectSmallProps> = ({
>
<AiOutlineInfoCircle />
</span>
<Tooltip id="tooltip-connect" />
<Tooltip id="tooltip-connect" className="tooltip-wrap" />
</>
);
};
Expand Down
2 changes: 1 addition & 1 deletion src/app/components/Delegations/Delegation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,7 @@ export const Delegation: React.FC<DelegationProps> = ({
>
<AiOutlineInfoCircle />
</span>
<Tooltip id={`tooltip-${stakingTxHash}`} />
<Tooltip id={`tooltip-${stakingTxHash}`} className="tooltip-wrap" />
</div>
</div>
{generateActionButton()}
Expand Down
2 changes: 1 addition & 1 deletion src/app/components/FinalityProviders/FinalityProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ export const FinalityProvider: React.FC<FinalityProviderProps> = ({
0
)}
</div>
<Tooltip id="tooltip-missing" />
<Tooltip id="tooltip-missing" className="tooltip-wrap" />
</div>
);
};
4 changes: 2 additions & 2 deletions src/app/components/FinalityProviders/FinalityProviders.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ export const FinalityProviders: React.FC<FinalityProvidersProps> = ({
)}
</InfiniteScroll>
</div>
<Tooltip id="tooltip-delegations" />
<Tooltip id="tooltip-stake" />
<Tooltip id="tooltip-delegations" className="tooltip-wrap" />
<Tooltip id="tooltip-stake" className="tooltip-wrap" />
</div>
);
};
2 changes: 1 addition & 1 deletion src/app/components/Modals/ConnectModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,7 @@ export const ConnectModal: React.FC<ConnectModalProps> = ({
>
<AiOutlineInfoCircle />
</span>
<Tooltip id={name} />
<Tooltip id={name} className="tooltip-wrap" />
</div>
)}
</div>
Expand Down
11 changes: 6 additions & 5 deletions src/app/components/Modals/Terms/data/terms.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
import { getNetworkAppUrl } from "@/config";

export const Terms = () => {
const url = getNetworkAppUrl();

return (
<div className="rounded-2xl border border-neutral-content p-6 dark:border-neutral-content/20 overflow-y-scroll no-scrollbar max-h-[100vh] terms-container">
<p className="italic">Last updated [27 May 2024]</p>
<br />
<p>
<a
href="https://btcstaking.testnet.babylonchain.io/"
className="text-primary italic"
>
https://btcstaking.testnet.babylonchain.io/
<a href={url} className="text-primary italic">
{url}
</a>{" "}
is a website-hosted user interface (the{" "}
<i className="text-primary">“Interface”</i>).{" "}
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/Stakers/Stakers.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ export const Stakers: React.FC<StakersProps> = () => {
<LoadingView />
)}
</div>
<Tooltip id="tooltip-delegations" />
<Tooltip id="tooltip-stake" />
<Tooltip id="tooltip-delegations" className="tooltip-wrap" />
<Tooltip id="tooltip-stake" className="tooltip-wrap" />
</div>
);
};
Loading