diff --git a/.github/docker/Dockerfile.musl b/.github/docker/Dockerfile.musl new file mode 100644 index 0000000..e9af278 --- /dev/null +++ b/.github/docker/Dockerfile.musl @@ -0,0 +1,7 @@ +ARG NODE_VERSION=16.20.1 +ARG ALPINE_VERSION=3.17.2 +ARG P=amd64 + +FROM ${P}/node:16-alpine AS node + +RUN node -v diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c2e37bd..05bcd61 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,35 +12,70 @@ permissions: id-token: write jobs: - host_builds: - strategy: - matrix: - os: [macos-latest, windows-2019] - runs-on: ${{ matrix.os }} - steps: - - uses: actions/checkout@v4 + # host_builds: + # strategy: + # matrix: + # os: [macos-latest, windows-2019] + # runs-on: ${{ matrix.os }} + # steps: + # - uses: actions/checkout@v4 + + # - name: Build ${{ matrix.os }} Prebuild + # run: node .github/scripts/libmongocrypt.mjs ${{ runner.os == 'Windows' && '--build' || '' }} + # shell: bash + + # - id: upload + # name: Upload prebuild + # uses: actions/upload-artifact@v4 + # with: + # name: build-${{ matrix.os }} + # path: prebuilds/ + # if-no-files-found: 'error' + # retention-days: 1 + # compression-level: 0 + + # container_builds: + # outputs: + # artifact_id: ${{ steps.upload.outputs.artifact-id }} + # runs-on: ubuntu-latest + # strategy: + # matrix: + # linux_arch: [s390x, arm64, amd64] + # steps: + # - uses: actions/checkout@v4 + + # - name: Set up QEMU + # uses: docker/setup-qemu-action@v3 - - name: Build ${{ matrix.os }} Prebuild - run: node .github/scripts/libmongocrypt.mjs ${{ runner.os == 'Windows' && '--build' || '' }} - shell: bash + # - name: Set up Docker Buildx + # uses: docker/setup-buildx-action@v3 - - id: upload - name: Upload prebuild - uses: actions/upload-artifact@v4 - with: - name: build-${{ matrix.os }} - path: prebuilds/ - if-no-files-found: 'error' - retention-days: 1 - compression-level: 0 + # - name: Run Buildx + # run: | + # docker buildx create --name builder --bootstrap --use + # docker buildx build \ + # --platform linux/${{ matrix.linux_arch }} \ + # --build-arg="NODE_ARCH=${{ matrix.linux_arch == 'amd64' && 'x64' || matrix.linux_arch }}" \ + # --output type=local,dest=./prebuilds,platform-split=false \ + # -f ./.github/docker/Dockerfile.glibc \ + # . - container_builds: + # - id: upload + # name: Upload prebuild + # uses: actions/upload-artifact@v4 + # with: + # name: build-linux-${{ matrix.linux_arch }} + # path: prebuilds/ + # if-no-files-found: 'error' + # retention-days: 1 + # compression-level: 0 + container_builds_musl: outputs: artifact_id: ${{ steps.upload.outputs.artifact-id }} runs-on: ubuntu-latest strategy: matrix: - linux_arch: [s390x, arm64, amd64] + linux_arch: [arm64, amd64] steps: - uses: actions/checkout@v4 @@ -53,19 +88,18 @@ jobs: - name: Run Buildx run: | docker buildx create --name builder --bootstrap --use - docker buildx build \ - --platform linux/${{ matrix.linux_arch }} \ - --build-arg="NODE_ARCH=${{ matrix.linux_arch == 'amd64' && 'x64' || matrix.linux_arch }}" \ - --output type=local,dest=./prebuilds,platform-split=false \ - -f ./.github/docker/Dockerfile.glibc \ + docker --debug buildx build --progress=plain --no-cache \ + --platform linux/${{ matrix.linux_arch }} --output type=local,dest=./prebuilds,platform-split=false \ + --build-arg="P=${{ matrix.linux_arch == 'amd64' && 'amd64' || 'arm64v8'}}" \ + -f ./.github/docker/Dockerfile.musl \ . - - id: upload - name: Upload prebuild - uses: actions/upload-artifact@v4 - with: - name: build-linux-${{ matrix.linux_arch }} - path: prebuilds/ - if-no-files-found: 'error' - retention-days: 1 - compression-level: 0 + # - id: upload + # name: Upload prebuild + # uses: actions/upload-artifact@v4 + # with: + # name: build-linux-${{ matrix.linux_arch }} + # path: prebuilds/ + # if-no-files-found: 'error' + # retention-days: 1 + # compression-level: 0