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

Dev #102

Merged
merged 6 commits into from
Nov 29, 2024
Merged

Dev #102

Show file tree
Hide file tree
Changes from all commits
Commits
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
50 changes: 50 additions & 0 deletions .github/workflows/mainnet-package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build and Push Image
on:
push:
tags:
- 'v*.*.*'
jobs:
build-and-push-image:
runs-on: portkey-runner
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Create image tag
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ secrets.REPOSITORY_REGION }}-docker.pkg.dev/${{ secrets.PROJECT_ID }}/${{ secrets.REPOSITORY }}/portkey-login-page # change this to your project frontend name
tags: |
type=ref,event=tag
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v5
env:
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI }}
NEXT_PUBLIC_APP_MAINNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_SERVICE }}
NEXT_PUBLIC_APP_TESTNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_SERVICE }}
NEXT_PUBLIC_APP_MAINNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_CONNECT }}
NEXT_PUBLIC_APP_TESTNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_CONNECT }}
NEXT_PUBLIC_APP_MAINNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_GRAPHQL }}
NEXT_PUBLIC_APP_TESTNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_GRAPHQL }}
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2 }}
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI }}
NEXT_PUBLIC_APP_MAINNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_SERVICE }}
NEXT_PUBLIC_APP_TESTNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_SERVICE }}
NEXT_PUBLIC_APP_MAINNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_CONNECT }}
NEXT_PUBLIC_APP_TESTNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_CONNECT }}
NEXT_PUBLIC_APP_MAINNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_GRAPHQL }}
NEXT_PUBLIC_APP_TESTNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_GRAPHQL }}
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2 }}
76 changes: 76 additions & 0 deletions .github/workflows/testnet-package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Build and Push Image
on:
push:
branches: ['dev']
jobs:
build-and-push-image:
runs-on: portkey-runner
permissions:
contents: read
outputs:
short_sha: ${{ steps.vars.outputs.short_sha }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set short git commit SHA
id: vars
run: |
calculatedSha=$(git rev-parse --short ${{ github.sha }})
echo "short_sha=$calculatedSha" >> "$GITHUB_OUTPUT"
- name: Create image tag
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ secrets.REPOSITORY_REGION }}-docker.pkg.dev/${{ secrets.PROJECT_ID }}/${{ secrets.REPOSITORY }}/portkey-login-page # change this to your project frontend name
tags: |
type=sha
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v5
env:
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI }}
NEXT_PUBLIC_APP_MAINNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_SERVICE }}
NEXT_PUBLIC_APP_TESTNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_SERVICE }}
NEXT_PUBLIC_APP_MAINNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_CONNECT }}
NEXT_PUBLIC_APP_TESTNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_CONNECT }}
NEXT_PUBLIC_APP_MAINNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_GRAPHQL }}
NEXT_PUBLIC_APP_TESTNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_GRAPHQL }}
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2 }}
with:
context: .
push: true
platforms: linux/amd64
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI }}
NEXT_PUBLIC_APP_MAINNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_SERVICE }}
NEXT_PUBLIC_APP_TESTNET_SERVICE: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_SERVICE }}
NEXT_PUBLIC_APP_MAINNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_CONNECT }}
NEXT_PUBLIC_APP_TESTNET_CONNECT: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_CONNECT }}
NEXT_PUBLIC_APP_MAINNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_MAINNET_GRAPHQL }}
NEXT_PUBLIC_APP_TESTNET_GRAPHQL: ${{ secrets.NEXT_PUBLIC_APP_TESTNET_GRAPHQL }}
NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2: ${{ secrets.NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2 }}

dispatch:
runs-on: portkey-runner
needs: build-and-push-image
steps:
- name: Deploy
uses: actions/github-script@v6
with:
github-token: ${{ secrets.TOK }}
script: |
await github.rest.actions.createWorkflowDispatch({
owner: 'Portkey-Wallet',
repo: 'devops',
workflow_id: 'deployment_testnet.yaml',
ref: 'master',
inputs: {
appName: 'portkey-login-page',
commit_sha: 'sha-${{ needs.build-and-push-image.outputs.short_sha }}',
}
})
110 changes: 102 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,14 +1,108 @@
FROM node:16.18.1
FROM node:20.11.0 AS base

ARG path=/opt/workspace/portkey-login-page
ARG web=/app
ARG external_port=3000

WORKDIR ${path}
# Install dependencies only when needed
FROM base AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
# RUN apk add --no-cache libc6-compat git
WORKDIR ${web}

COPY . ${path}
# Install dependencies based on the preferred package manager
COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./
RUN yarn --frozen-lockfile

RUN yarn \
&& yarn build
# Rebuild the source code only when needed∏
FROM base AS builder

ENTRYPOINT yarn start
ARG NEXT_PUBLIC_APP_APPLE_REDIRECT_URI
ARG NEXT_PUBLIC_APP_MAINNET_SERVICE
ARG NEXT_PUBLIC_APP_TESTNET_SERVICE
ARG NEXT_PUBLIC_APP_MAINNET_CONNECT
ARG NEXT_PUBLIC_APP_TESTNET_CONNECT
ARG NEXT_PUBLIC_APP_MAINNET_GRAPHQL
ARG NEXT_PUBLIC_APP_TESTNET_GRAPHQL
ARG NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2

EXPOSE 3000
ENV NEXT_PUBLIC_APP_APPLE_REDIRECT_URI=${NEXT_PUBLIC_APP_APPLE_REDIRECT_URI}
ENV NEXT_PUBLIC_APP_MAINNET_SERVICE=${NEXT_PUBLIC_APP_MAINNET_SERVICE}
ENV NEXT_PUBLIC_APP_TESTNET_SERVICE=${NEXT_PUBLIC_APP_TESTNET_SERVICE}
ENV NEXT_PUBLIC_APP_MAINNET_CONNECT=${NEXT_PUBLIC_APP_MAINNET_CONNECT}
ENV NEXT_PUBLIC_APP_TESTNET_CONNECT=${NEXT_PUBLIC_APP_TESTNET_CONNECT}
ENV NEXT_PUBLIC_APP_MAINNET_GRAPHQL=${NEXT_PUBLIC_APP_MAINNET_GRAPHQL}
ENV NEXT_PUBLIC_APP_TESTNET_GRAPHQL=${NEXT_PUBLIC_APP_TESTNET_GRAPHQL}
ENV NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2=${NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2}
WORKDIR ${web}
COPY --from=deps ${web}/node_modules ./node_modules
COPY . .

# Next.js collects completely anonymous telemetry data about general usage.
# Learn more here: https://nextjs.org/telemetry
# Uncomment the following line in case you want to disable telemetry during the build.
ENV NEXT_TELEMETRY_DISABLED=1

# TODO - remove $ENVIRONMENT from CI builds after confirming no dependency
ARG ENVIRONMENT
ARG APP_ENV
RUN echo "...Building for ${ENVIRONMENT} / ${APP_ENV}"

# more standardised build script, refer to package.json
RUN NODE_OPTIONS=--max-old-space-size=8192 \
NEXT_PUBLIC_NETWORK_ENV="$APP_ENV" \
npx next build

# Production image, copy all the files and run next
FROM base AS runner

ARG NEXT_PUBLIC_APP_APPLE_REDIRECT_URI
ARG NEXT_PUBLIC_APP_MAINNET_SERVICE
ARG NEXT_PUBLIC_APP_TESTNET_SERVICE
ARG NEXT_PUBLIC_APP_MAINNET_CONNECT
ARG NEXT_PUBLIC_APP_TESTNET_CONNECT
ARG NEXT_PUBLIC_APP_MAINNET_GRAPHQL
ARG NEXT_PUBLIC_APP_TESTNET_GRAPHQL
ARG NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2

ENV NEXT_PUBLIC_APP_APPLE_REDIRECT_URI=${NEXT_PUBLIC_APP_APPLE_REDIRECT_URI}
ENV NEXT_PUBLIC_APP_MAINNET_SERVICE=${NEXT_PUBLIC_APP_MAINNET_SERVICE}
ENV NEXT_PUBLIC_APP_TESTNET_SERVICE=${NEXT_PUBLIC_APP_TESTNET_SERVICE}
ENV NEXT_PUBLIC_APP_MAINNET_CONNECT=${NEXT_PUBLIC_APP_MAINNET_CONNECT}
ENV NEXT_PUBLIC_APP_TESTNET_CONNECT=${NEXT_PUBLIC_APP_TESTNET_CONNECT}
ENV NEXT_PUBLIC_APP_MAINNET_GRAPHQL=${NEXT_PUBLIC_APP_MAINNET_GRAPHQL}
ENV NEXT_PUBLIC_APP_TESTNET_GRAPHQL=${NEXT_PUBLIC_APP_TESTNET_GRAPHQL}
ENV NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2=${NEXT_PUBLIC_APP_APPLE_REDIRECT_URI_V2}
WORKDIR ${web}

ENV NODE_ENV=production
# Uncomment the following line in case you want to disable telemetry during runtime.
ENV NEXT_TELEMETRY_DISABLED=1

RUN addgroup --system --gid 1001 nodejs
RUN adduser --system --uid 1001 nextjs

# Set the correct permission for prerender cache
RUN mkdir .next
RUN chown nextjs:nodejs .next
RUN ls .next

# https://nextjs.org/docs/14/pages/api-reference/next-config-js/output
# COPY --from=builder --chown=nextjs:nodejs ${web}/.next/standalone ./
# COPY --from=builder --chown=nextjs:nodejs ${web}/public ./public/
# COPY --from=builder --chown=nextjs:nodejs ${web}/.next/static ./.next/static

# COPY --from=builder --chown=nextjs:nodejs . .
COPY --from=builder --chown=nextjs:nodejs /app ./
COPY package.json ./


USER nextjs

EXPOSE ${external_port}

ENV PORT=${external_port}

# server.js is created by next build from the standalone output
# https://nextjs.org/docs/pages/api-reference/next-config-js/output
ENV HOSTNAME="0.0.0.0"
CMD HOSTNAME="0.0.0.0" yarn start
1 change: 0 additions & 1 deletion src/pages-components/telegram-auth/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@ export default function TelegramAuth({
if (lang && typeof lang !== "string") throw onError("Invalid lang");

changeLoading.current(true);

const result = await fetch(
`${serviceURL}/api/app/telegramAuth/getTelegramBot`
).then((res) => res.json());
Expand Down
Loading