diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 87028ef..4652c33 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -1,139 +1,19 @@ +name: CI + on: push: - branches: - - main - - dev - - ci - -name: Build & Deploy - -env: - REGISTRY: ghcr.io - CLIENT_IMAGE_NAME: ${{ github.repository }}-client - SERVER_IMAGE_NAME: ${{ github.repository }}-server + branches: [ main, master ] + pull_request: + branches: [ main, master ] jobs: - changed: - runs-on: ubuntu-latest - outputs: - client: ${{ steps.client.outputs.changed }} - server: ${{ steps.server.outputs.changed }} - steps: - - name: "Checkout" - uses: actions/checkout@v3 - - - name: Get changed client files - id: client-files - uses: tj-actions/changed-files@v35 - with: - since_last_remote_commit: true - files: client/** - - - name: Get changed server files - id: server-files - uses: tj-actions/changed-files@v35 - with: - since_last_remote_commit: true - files: server/** - - - name: Check if client has changed files - id: client - if: steps.client-files.outputs.any_changed == 'true' - run: echo "changed=true" >> "$GITHUB_OUTPUT" - - - name: Check if server has changed files - id: server - if: steps.server-files.outputs.any_changed == 'true' - run: echo "changed=true" >> "$GITHUB_OUTPUT" - - client: - runs-on: ubuntu-latest - if: ${{ needs.changed.outputs.client == 'true' }} - defaults: - run: - working-directory: client - steps: - - name: "Checkout" - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: "16" - cache: "yarn" - cache-dependency-path: client/yarn.lock - - - name: Install project dependencies - run: yarn --prefer-offline - - - name: "Build" - run: yarn build - - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v4 - with: - images: ${{ env.REGISTRY }}/${{ env.CLIENT_IMAGE_NAME }} - tags: type=sha - - - name: Build and push Docker image - uses: docker/build-push-action@v4 - with: - context: ./client - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - needs: changed - - server: + build: runs-on: ubuntu-latest - if: ${{ needs.changed.outputs.server == 'true' }} - defaults: - run: - working-directory: server + steps: - - name: "Checkout" - uses: actions/checkout@v3 - - - name: Set up Node.js - uses: actions/setup-node@v3 - with: - node-version: "16" - cache: "yarn" - cache-dependency-path: server/yarn.lock - - - name: Install project dependencies - run: yarn --prefer-offline - - - name: "Build" - run: yarn build - - - name: Log in to the Container registry - uses: docker/login-action@v2 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v4 - with: - images: ${{ env.REGISTRY }}/${{ env.SERVER_IMAGE_NAME }} - tags: type=sha + - name: Checkout code + uses: actions/checkout@v4 + + - name: Setup + run: echo "Add your build steps here" - - name: Build and push Docker image - uses: docker/build-push-action@v4 - with: - context: ./server - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - needs: changed