name: CI on: push: branches: - main pull_request: branches: - main jobs: build-core: runs-on: ubuntu-latest steps: - name: Checkout Source Code uses: actions/checkout@v3 - name: Setup Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Cache build id: cache-build uses: actions/cache@v3 with: path: build-cache-st key: build-cache-st-v1-${{ hashFiles('Dockerfile', 'Makefile', 'build/*') }} restore-keys: | build-cache-st-v1- - name: Build ffmpeg-core run: make prd EXTRA_ARGS="--cache-from=type=local,src=build-cache-st --cache-to=type=local,dest=build-cache-st,mode=max" - name: Upload core uses: actions/upload-artifact@v3 with: name: ffmpeg-core path: packages/core/dist/* build-core-mt: runs-on: ubuntu-latest steps: - name: Checkout Source Code uses: actions/checkout@v3 - name: Setup Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Cache build id: cache-build uses: actions/cache@v3 with: path: build-cache-mt key: build-cache-mt-v1-${{ hashFiles('Dockerfile', 'Makefile', 'build/*') }} restore-keys: | build-cache-v1- - name: Build ffmpet-core-mt run: make prd-mt EXTRA_ARGS="--cache-from=type=local,src=build-cache-mt --cache-to=type=local,dest=build-cache-mt,mode=max" - name: Upload core-mt uses: actions/upload-artifact@v3 with: name: ffmpeg-core-mt path: packages/core-mt/dist/* tests: runs-on: ubuntu-latest needs: - build-core - build-core-mt steps: - name: Checkout Source Code uses: actions/checkout@v3 - name: Download ffmpeg-core uses: actions/download-artifact@v3 with: name: ffmpeg-core path: packages/core/dist - name: Download ffmpeg-core-mt uses: actions/download-artifact@v3 with: name: ffmpeg-core-mt path: packages/core-mt/dist - name: Use Node.js 16 uses: actions/setup-node@v3 with: node-version: 16.x - name: Cache dependencies id: cache-dependencies uses: actions/cache@v3 with: path: node_modules key: node-modules-${{ hashFiles('package-lock.json') }} restore-keys: | node-modules- - name: Install dependencies run: npx lerna@5.4.3 bootstrap - name: Run tests run: npm test