Skip to content

Commit

Permalink
merge main to stagging
Browse files Browse the repository at this point in the history
  • Loading branch information
Daoud-Hussain authored Nov 15, 2024
2 parents f958bb2 + 0d800d6 commit 144f4e1
Show file tree
Hide file tree
Showing 5 changed files with 94 additions and 70 deletions.
18 changes: 9 additions & 9 deletions .github/workflows/dev-cicd.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Dev CI/CD Pipeline
name: Dev - CI/CD Pipeline

on:
push:
Expand Down Expand Up @@ -62,11 +62,11 @@ jobs:
run: echo "${{ secrets.DOCKER_PASSWORD_DEV }}" | docker login -u "${{ secrets.DOCKER_USERNAME_DEV }}" --password-stdin
- name: Push Docker image to Docker Hub (dev)
run: docker push ${{ env.IMAGE_NAME }}:dev
- name: Deploy to Dev Server
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.DEV_SERVER_USER }}@${{ secrets.DEV_SERVER_IP }} << 'EOF'
docker pull ${{ env.IMAGE_NAME }}:dev
docker stop dev-container || true
docker rm dev-container || true
docker run -d --name dev-container -p 3000:3000 ${{ env.IMAGE_NAME }}:dev
EOF
# - name: Deploy to Dev Server
# run: |
# ssh -o StrictHostKeyChecking=no ${{ secrets.DEV_SERVER_USER }}@${{ secrets.DEV_SERVER_IP }} << 'EOF'
# docker pull ${{ env.IMAGE_NAME }}:dev
# docker stop dev-container || true
# docker rm dev-container || true
# docker run -d --name dev-container -p 3000:3000 ${{ env.IMAGE_NAME }}:dev
# EOF
53 changes: 0 additions & 53 deletions .github/workflows/integration.yml

This file was deleted.

Empty file added .github/workflows/prod-cicd.yml
Empty file.
72 changes: 72 additions & 0 deletions .github/workflows/stagging-cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Staging CI/CD Pipeline

on:
push:
branches:
- staging
pull_request:
branches:
- dev

env:
IMAGE_NAME: daoudhussaindev/next-js-app

jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]

steps:
- uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build Next.js application
run: npm run build

test:
runs-on: ubuntu-latest
needs: build
strategy:
matrix:
node-version: [18.x]

steps:
- uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm run test

deploy:
runs-on: ubuntu-latest
needs: [test]
if: github.ref == 'refs/heads/staging'

steps:
- uses: actions/checkout@v4
- name: Build Docker image for staging
run: docker build -t ${{ env.IMAGE_NAME }}:staging .
- name: Login to Docker Hub
run: echo "${{ secrets.DOCKER_PASSWORD_DEV }}" | docker login -u "${{ secrets.DOCKER_USERNAME_DEV }}" --password-stdin
- name: Push Docker image to Docker Hub (staging)
run: docker push ${{ env.IMAGE_NAME }}:staging
# - name: Deploy to Staging Server
# run: |
# ssh -o StrictHostKeyChecking=no ${{ secrets.STAGING_SERVER_USER }}@${{ secrets.STAGING_SERVER_IP }} << 'EOF'
# docker pull ${{ env.IMAGE_NAME }}:staging
# docker stop staging-container || true
# docker rm staging-container || true
# docker run -d --name staging-container -p 3001:3000 ${{ env.IMAGE_NAME }}:staging
# EOF
21 changes: 13 additions & 8 deletions app/page.test.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
/**
* @jest-environment jsdom
*/
import { render, screen } from "@testing-library/react";
import Page from "./page";
import { render, screen } from '@testing-library/react';
import Page from './page'; // Adjust the import if necessary

it("App Router: Works with Server Components", () => {
render(<Page />);
expect(screen.getByRole("heading")).toHaveTextContent("App Router");
describe("App Router", () => {
it("Works with Server Components", () => {
render(<Page />);

// Check for specific heading (e.g., <h1> text)
expect(screen.getByRole('heading', { name: /My Next\.js Site/i })).toBeInTheDocument();

// Alternatively, you can check for other headings or count the number of heading elements
const headings = screen.getAllByRole('heading');
expect(headings).toHaveLength(8); // Ensure there are 7 headings
});
});

0 comments on commit 144f4e1

Please sign in to comment.