Skip to content

Moving to monorepo

Moving to monorepo #14

Workflow file for this run

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/[email protected]
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 }}
TO_VERSION: test1
run: |
OUT_API=sill-api:$TO_VERSION,$GITHUB_REPOSITORY:latest
OUT_API=$(echo "$OUT_API" | awk '{print tolower($0)}')
echo ::set-output name=docker_api_tags::$OUT_API
OUT_WEB=$TO_VERSION,$GITHUB_REPOSITORY:latest
OUT_WEB=$(echo "$OUT_WEB" | awk '{print tolower($0)}')
echo ::set-output name=docker_web_tags::$OUT_WEB
- uses: docker/build-push-action@v5
with:
push: true
context: .
target: api
tags: ${{ steps.step1.outputs.docker_api_tags }}
- uses: docker/build-push-action@v5
with:
push: true
context: .
target: web
tags: ${{ steps.step1.outputs.docker_web_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