Skip to content

Commit

Permalink
127 code clean up (#130)
Browse files Browse the repository at this point in the history
* migrate deploy in CI test
  • Loading branch information
JurreBrandsenInfoSupport committed May 27, 2024
1 parent 6e489dc commit 0472270
Show file tree
Hide file tree
Showing 3 changed files with 196 additions and 20 deletions.
35 changes: 18 additions & 17 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ on:
workflow_dispatch:
inputs:
environment:
description: 'Choose environment'
description: "Choose environment"
required: true
default: 'acceptance'
default: "acceptance"
type: choice
options:
- 'acceptance'
- 'production'
- "acceptance"
- "production"

jobs:
build:
Expand All @@ -20,25 +20,26 @@ jobs:
- name: Set up Node.js version
uses: actions/setup-node@v4
with:
node-version: '20.x'
cache: 'npm'
- name: '📩 npm install'
node-version: "20.x"
cache: "npm"
- name: "📩 npm install"
run: npm ci
- name: '🏗 npm build'
- name: "🏗 npm build"
run: |
npm ci
cp .env.example .env # an env file is needed for `build`
npm run db:generate
npm run db:deploy
npm run build
npm ci --prod
rm .env
- name: '📦 Package artifact'
- name: "📦 Package artifact"
# `./*`: the current directory
# `.next`: explicitly also zip this hidden directory.
# `.next`: explicitly also zip this hidden directory.
# `-r`: recursive
# `-y`: preserve symlinks
run: zip -y release.zip ./* .next -r
- name: '📤 Upload artifact'
run: zip -y release.zip ./* .next -r
- name: "📤 Upload artifact"
uses: actions/upload-artifact@v4
with:
name: node-app
Expand All @@ -53,22 +54,22 @@ jobs:
permissions:
id-token: write #This is required for requesting the JWT
steps:
- name: '📩 Download artifact'
- name: "📩 Download artifact"
uses: actions/download-artifact@v4
with:
name: node-app
- name: '💤 Unzip artifact'
- name: "💤 Unzip artifact"
run: unzip release.zip
- name: '🙌 Prepare'
- name: "🙌 Prepare"
run: az storage file download --share-name import --path survey.csv --account-name $AZURE_STORAGE_ACCOUNT --account-key $AZURE_STORAGE_KEY --dest import/survey.csv
env:
AZURE_STORAGE_ACCOUNT: ${{ secrets.AZURE_STORAGE_ACCOUNT }}
AZURE_STORAGE_KEY: ${{ secrets.AZURE_STORAGE_KEY }}
- name: '🚀 Deploy'
- name: "🚀 Deploy"
id: deploy-to-webapp
uses: azure/webapps-deploy@v2
with:
app-name: ${{ secrets.APP_SERVICE_NAME }}
slot-name: 'production'
slot-name: "production"
package: .
publish-profile: ${{ secrets.AZURE_APP_SERVICE_PUBLISH_PROFILE }}
4 changes: 1 addition & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
"db:studio": "prisma studio",
"db:format": "prisma format",
"db:generate": "prisma generate",
"db:deploy": "prisma migrate deploy",
"db:seed": "node prisma/seed.js",
"dev": "next dev",
"lint": "next lint",
Expand All @@ -21,9 +22,6 @@
},
"dependencies": {
"@auth/prisma-adapter": "^2.1.0",
"@fortawesome/fontawesome-svg-core": "^6.5.2",
"@fortawesome/free-brands-svg-icons": "^6.5.2",
"@fortawesome/react-fontawesome": "^0.2.2",
"@hookform/resolvers": "^3.4.2",
"@prisma/client": "^5.14.0",
"@radix-ui/react-accordion": "^1.1.2",
Expand Down
177 changes: 177 additions & 0 deletions prisma/migrations/20240527075302_init/migration.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
-- CreateEnum
CREATE TYPE "CommunicationMethod" AS ENUM ('SLACK', 'EMAIL', 'WHATSAPP', 'SIGNAL', 'PHONE', 'TEAMS');

-- CreateTable
CREATE TABLE "Survey" (
"id" TEXT NOT NULL,
"surveyName" TEXT NOT NULL,

CONSTRAINT "Survey_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Role" (
"id" TEXT NOT NULL,
"role" TEXT NOT NULL,
"default" BOOLEAN NOT NULL DEFAULT false,

CONSTRAINT "Role_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Question" (
"id" TEXT NOT NULL,
"surveyId" TEXT NOT NULL,
"questionText" TEXT NOT NULL,

CONSTRAINT "Question_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "AnswerOption" (
"id" TEXT NOT NULL,
"option" INTEGER NOT NULL,

CONSTRAINT "AnswerOption_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "QuestionResult" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"questionId" TEXT NOT NULL,
"answerId" TEXT NOT NULL,

CONSTRAINT "QuestionResult_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "CommunicationPreference" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"methods" "CommunicationMethod"[] DEFAULT ARRAY[]::"CommunicationMethod"[],

CONSTRAINT "CommunicationPreference_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "User" (
"id" TEXT NOT NULL,
"name" TEXT,
"email" TEXT,
"emailVerified" TIMESTAMP(3),
"image" TEXT,

CONSTRAINT "User_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Account" (
"id" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"type" TEXT NOT NULL,
"provider" TEXT NOT NULL,
"providerAccountId" TEXT NOT NULL,
"refresh_token" TEXT,
"access_token" TEXT,
"expires_at" INTEGER,
"ext_expires_in" INTEGER,
"token_type" TEXT,
"scope" TEXT,
"id_token" TEXT,
"session_state" TEXT,

CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "Session" (
"id" TEXT NOT NULL,
"sessionToken" TEXT NOT NULL,
"userId" TEXT NOT NULL,
"expires" TIMESTAMP(3) NOT NULL,

CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
);

-- CreateTable
CREATE TABLE "VerificationToken" (
"identifier" TEXT NOT NULL,
"token" TEXT NOT NULL,
"expires" TIMESTAMP(3) NOT NULL
);

-- CreateTable
CREATE TABLE "_UserRole" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL
);

-- CreateTable
CREATE TABLE "_QuestionToRole" (
"A" TEXT NOT NULL,
"B" TEXT NOT NULL
);

-- CreateIndex
CREATE UNIQUE INDEX "Survey_surveyName_key" ON "Survey"("surveyName");

-- CreateIndex
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");

-- CreateIndex
CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account"("provider", "providerAccountId");

-- CreateIndex
CREATE UNIQUE INDEX "Session_sessionToken_key" ON "Session"("sessionToken");

-- CreateIndex
CREATE UNIQUE INDEX "VerificationToken_token_key" ON "VerificationToken"("token");

-- CreateIndex
CREATE UNIQUE INDEX "VerificationToken_identifier_token_key" ON "VerificationToken"("identifier", "token");

-- CreateIndex
CREATE UNIQUE INDEX "_UserRole_AB_unique" ON "_UserRole"("A", "B");

-- CreateIndex
CREATE INDEX "_UserRole_B_index" ON "_UserRole"("B");

-- CreateIndex
CREATE UNIQUE INDEX "_QuestionToRole_AB_unique" ON "_QuestionToRole"("A", "B");

-- CreateIndex
CREATE INDEX "_QuestionToRole_B_index" ON "_QuestionToRole"("B");

-- AddForeignKey
ALTER TABLE "Question" ADD CONSTRAINT "Question_surveyId_fkey" FOREIGN KEY ("surveyId") REFERENCES "Survey"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "QuestionResult" ADD CONSTRAINT "QuestionResult_answerId_fkey" FOREIGN KEY ("answerId") REFERENCES "AnswerOption"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "QuestionResult" ADD CONSTRAINT "QuestionResult_questionId_fkey" FOREIGN KEY ("questionId") REFERENCES "Question"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "QuestionResult" ADD CONSTRAINT "QuestionResult_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "CommunicationPreference" ADD CONSTRAINT "CommunicationPreference_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "_UserRole" ADD CONSTRAINT "_UserRole_A_fkey" FOREIGN KEY ("A") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "_UserRole" ADD CONSTRAINT "_UserRole_B_fkey" FOREIGN KEY ("B") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "_QuestionToRole" ADD CONSTRAINT "_QuestionToRole_A_fkey" FOREIGN KEY ("A") REFERENCES "Question"("id") ON DELETE CASCADE ON UPDATE CASCADE;

-- AddForeignKey
ALTER TABLE "_QuestionToRole" ADD CONSTRAINT "_QuestionToRole_B_fkey" FOREIGN KEY ("B") REFERENCES "Role"("id") ON DELETE CASCADE ON UPDATE CASCADE;

0 comments on commit 0472270

Please sign in to comment.