diff --git a/.github/workflows/backend.yml b/.github/workflows/backend.yml new file mode 100644 index 0000000..92ed9f3 --- /dev/null +++ b/.github/workflows/backend.yml @@ -0,0 +1,50 @@ +on: + push: + branches: [main] + pull_request: + branches: [main] + +name: "Backend CI" + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 16 + - name: Install dependencies + run: npm install + working-directory: backend + - name: Build + run: npm run build + working-directory: backend + + docker: + runs-on: ubuntu-latest + needs: + - build + permissions: + packages: write + steps: + - uses: actions/checkout@v3 + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + - name: Login to GitHub Container Registry + if: ${{ github.ref == 'refs/heads/main' }} + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + context: ./backend + file: ./backend/Dockerfile + push: ${{ github.ref == 'refs/heads/main' }} + tags: ghcr.io/cthit/bookit-node-backend:latest diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml new file mode 100644 index 0000000..2b5dcdd --- /dev/null +++ b/.github/workflows/frontend.yml @@ -0,0 +1,50 @@ +on: + push: + branches: [main] + pull_request: + branches: [main] + +name: "Frontend CI" + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v1 + with: + node-version: 16 + - name: Install dependencies + run: npm install + working-directory: frontend + - name: Build + run: npm run build + working-directory: frontend + + docker: + runs-on: ubuntu-latest + needs: + - build + permissions: + packages: write + steps: + - uses: actions/checkout@v3 + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + - name: Login to GitHub Container Registry + if: ${{ github.ref == 'refs/heads/main' }} + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v2 + with: + context: ./frontend + file: ./frontend/Dockerfile + push: ${{ github.ref == 'refs/heads/main' }} + tags: ghcr.io/cthit/bookit-node-frontend:latest diff --git a/backend/Dockerfile b/backend/Dockerfile index 89c6d3c..e848c85 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts as build +FROM node:16 as build COPY package.json package-lock.json ./ COPY ./prisma/ . @@ -7,7 +7,7 @@ RUN npm install COPY . . RUN npm run build -FROM node:lts +FROM node:16 COPY --from=build ./build ./build/ COPY --from=build ./src/schemas ./build/schemas diff --git a/frontend/Dockerfile b/frontend/Dockerfile index 99b5150..55dc48e 100644 --- a/frontend/Dockerfile +++ b/frontend/Dockerfile @@ -1,4 +1,4 @@ -FROM node:lts as build +FROM node:16 as build COPY package.json package-lock.json ./