Skip to content

Commit

Permalink
setting up CI to work with monorepo
Browse files Browse the repository at this point in the history
  • Loading branch information
JeromeBu committed Mar 8, 2024
1 parent 2c1092e commit 31c3beb
Show file tree
Hide file tree
Showing 2 changed files with 150 additions and 1 deletion.
149 changes: 149 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
name: CI - CD
on:
push:
branches:
- main
pull_request:
branches:
- main

jobs:
validations:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: bahmutov/npm-install@v1
- name: Build back
run: cd api && yarn build
- name: Fullcheck
run: yarn fullcheck

check_if_version_upgraded:
name: Check if version upgrade
if: github.event_name == 'push'
runs-on: ubuntu-latest
needs: validations
outputs:
from_version: ${{ steps.step1.outputs.from_version }}
to_version: ${{ steps.step1.outputs.to_version }}
is_upgraded_version: ${{ steps.step1.outputs.is_upgraded_version }}
steps:
- uses: garronej/ts-ci@v2.1.0
id: step1
with:
action_name: is_package_json_version_upgraded

docker:
runs-on: ubuntu-latest
# needs:
# - check_if_version_upgraded
# - create_github_release
steps:
- uses: actions/checkout@v4
- uses: docker/setup-qemu-action@v3
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Computing Docker image tags
id: step1
env:
IS_UPGRADED_VERSION: ${{ needs.check_if_version_upgraded.outputs.is_upgraded_version }}
TO_VERSION: ${{ needs.check_if_version_upgraded.outputs.to_version }}
run: |
OUT=$GITHUB_REPOSITORY:$TO_VERSION,$GITHUB_REPOSITORY:latest
OUT=$(echo "$OUT" | awk '{print tolower($0)}')
echo ::set-output name=docker_tags::$OUT
- uses: docker/build-push-action@v5
with:
push: true
context: .
target: api
tags: ${{ steps.step1.outputs.docker_tags }}
- uses: docker/build-push-action@v5
with:
push: true
context: .
target: web
tags: ${{ steps.step1.outputs.docker_tags }}

# build_docker_images:
# # needs:
# # - check_if_version_upgraded
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4

# - uses: docker/setup-buildx-action@v3
# - uses: docker/login-action@v3
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_TOKEN }}

# - name: Build API Docker image
# run: |
# docker build . --target api --tag api:latest
# docker save api:latest -o api.tar

# - name: Build Web Docker image
# run: |
# docker build . --target web --tag web:latest
# docker save web:latest -o web.tar

# - name: Upload API Image as Artifact
# uses: actions/upload-artifact@v4
# with:
# name: api-image
# path: api.tar

# - name: Upload Web Image as Artifact
# uses: actions/upload-artifact@v4
# with:
# name: web-image
# path: web.tar

# push_docker_images_to_docker_hub:
# needs:
# - build_docker_images
# runs-on: ubuntu-latest
# steps:
# - name: Checkout repository
# uses: actions/checkout@v4

# - name: Download API Image Artifact
# uses: actions/download-artifact@v4
# with:
# name: api-image
# path: .

# - name: Download Web Image Artifact
# uses: actions/download-artifact@v4
# with:
# name: web-image
# path: .

# - name: Load API Image
# run: docker load -i api.tar

# - name: Load Web Image
# run: docker load -i web.tar

# - name: Push API Image to Docker Hub
# run: echo ${{ secrets.DOCKER_HUB_PASSWORD }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
# env:
# DOCKER_HUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
# DOCKER_HUB_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
# run: docker push api:latest

# - name: Push Web Image to Docker Hub
# run: echo ${{ secrets.DOCKER_HUB_PASSWORD }} | docker login -u ${{ secrets.DOCKER_HUB_USERNAME }} --password-stdin
# env:
# DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }}
# DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }}
# run: docker push web:latest

2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# this aggregates the sill-web and sill-api into a single file
# this aggregates the web and api into a single file
# to take advantage of docker cache

# build step
Expand Down

0 comments on commit 31c3beb

Please sign in to comment.