diff --git a/.github/workflows/dev-cicd.yml b/.github/workflows/dev-cicd.yml new file mode 100644 index 00000000..aa75d6d2 --- /dev/null +++ b/.github/workflows/dev-cicd.yml @@ -0,0 +1,59 @@ +name: Development CI/CD Pipeline + +on: + push: + branches: + - dev + paths-ignore: + - .github/workflows/** + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Cache npm modules + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-npm- + + - name: Install npm + run: npm install -g npm@9 + + - name: Install dependencies + run: npm install + + - name: Lint code + run: npm run lint + + - name: Build project + run: npm run build + + deploy: + runs-on: ubuntu-latest + needs: build + + steps: + - name: Deploy to dev environment + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + password: ${{ secrets.PASSWORD }} + script: | + ./deploy_dev.sh remix diff --git a/.github/workflows/prod-cicd.yml b/.github/workflows/prod-cicd.yml new file mode 100644 index 00000000..64dd3d30 --- /dev/null +++ b/.github/workflows/prod-cicd.yml @@ -0,0 +1,60 @@ + +name: Production CI/CD Pipeline + +on: + push: + branches: + - main + paths-ignore: + - .github/workflows/** + +concurrency: + group: ${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: '20' + + - name: Cache npm modules + uses: actions/cache@v3 + with: + path: ~/.npm + key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-npm- + + - name: Install npm + run: npm install -g npm@9 + + - name: Install dependencies + run: npm install + + - name: Lint code + run: npm run lint + + - name: Build project + run: npm run build + + deploy: + runs-on: ubuntu-latest + needs: build + + steps: + - name: Deploy to prod environment + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.HOST }} + username: ${{ secrets.USERNAME }} + password: ${{ secrets.PASSWORD }} + script: | + ./deploy_prod.sh remix