From d0fc04eda93a5b372ff03b21c1148c0c170c5ba4 Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 22:38:24 -0500 Subject: [PATCH 1/7] update build Signed-off-by: Derek Anderson --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index bd9a378f0..26de58479 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,7 @@ WORKDIR /sd.cpp COPY . . +RUN git submodule init && git submodule update RUN mkdir build && cd build && cmake .. && cmake --build . --config Release FROM ubuntu:$UBUNTU_VERSION as runtime From 460c4f3cb6b95d56ba73f5ee21154f15b96442e2 Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 22:51:05 -0500 Subject: [PATCH 2/7] build wasm Signed-off-by: Derek Anderson --- .github/workflows/docker.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 94c34dc6a..9d2df3c16 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,3 +22,13 @@ jobs: echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u "${{ secrets.GHCR_USER }}" --password-stdin docker build . --tag ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -f Dockerfile docker push ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} + - uses: actions/setup-go@v5 + - name: Download and Setup container2wasm + run: | + wget https://github.com/ktock/container2wasm/releases/download/v0.6.5/container2wasm-v0.6.5-linux-amd64.tar.gz + tar -xzf container2wasm-v0.6.5-linux-amd64.tar.gz + chmod +x container2wasm-v0.6.5-linux-amd64/c2w + sudo mv container2wasm-v0.6.5-linux-amd64/c2w /usr/local/bin/c2w + - name: Build using container2wasm + run: | + c2w ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -o sd.wasm \ No newline at end of file From e03d605e8f7e8eb0158ff252f447504ec983b3ba Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 22:54:24 -0500 Subject: [PATCH 3/7] update c2w Signed-off-by: Derek Anderson --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 9d2df3c16..f6e93b03c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -27,8 +27,8 @@ jobs: run: | wget https://github.com/ktock/container2wasm/releases/download/v0.6.5/container2wasm-v0.6.5-linux-amd64.tar.gz tar -xzf container2wasm-v0.6.5-linux-amd64.tar.gz - chmod +x container2wasm-v0.6.5-linux-amd64/c2w - sudo mv container2wasm-v0.6.5-linux-amd64/c2w /usr/local/bin/c2w + chmod +x c2w + sudo mv c2w /usr/local/bin/c2w - name: Build using container2wasm run: | c2w ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -o sd.wasm \ No newline at end of file From d1cd211053527e3efa083e6561febd5f06bd46bd Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 22:56:27 -0500 Subject: [PATCH 4/7] remove build yml Signed-off-by: Derek Anderson --- .github/workflows/build.yml | 201 ------------------------------------ 1 file changed, 201 deletions(-) delete mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 50e6a9227..000000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,201 +0,0 @@ -name: CI - -on: - workflow_dispatch: # allows manual triggering - inputs: - create_release: - description: 'Create new release' - required: true - type: boolean - push: - branches: - - master - - ci - paths: ['.github/workflows/**', '**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu'] - pull_request: - types: [opened, synchronize, reopened] - paths: ['**/CMakeLists.txt', '**/Makefile', '**/*.h', '**/*.hpp', '**/*.c', '**/*.cpp', '**/*.cu'] - -env: - BRANCH_NAME: ${{ github.head_ref || github.ref_name }} - -jobs: - ubuntu-latest-cmake: - runs-on: ubuntu-latest - - steps: - - name: Clone - id: checkout - uses: actions/checkout@v3 - with: - submodules: recursive - - - - name: Dependencies - id: depends - run: | - sudo apt-get update - sudo apt-get install build-essential - - - name: Build - id: cmake_build - run: | - mkdir build - cd build - cmake .. - cmake --build . --config Release - - #- name: Test - #id: cmake_test - #run: | - #cd build - #ctest --verbose --timeout 900 - - macOS-latest-cmake: - runs-on: macos-latest - - steps: - - name: Clone - id: checkout - uses: actions/checkout@v3 - with: - submodules: recursive - - - name: Dependencies - id: depends - continue-on-error: true - run: | - brew update - - - name: Build - id: cmake_build - run: | - sysctl -a - mkdir build - cd build - cmake .. - cmake --build . --config Release - - #- name: Test - #id: cmake_test - #run: | - #cd build - #ctest --verbose --timeout 900 - - windows-latest-cmake: - runs-on: windows-latest - - strategy: - matrix: - include: - - build: 'noavx' - defines: '-DGGML_AVX=OFF -DGGML_AVX2=OFF -DGGML_FMA=OFF' - - build: 'avx2' - defines: '-DGGML_AVX2=ON' - - build: 'avx' - defines: '-DGGML_AVX2=OFF' - - build: 'avx512' - defines: '-DGGML_AVX512=ON' - - steps: - - name: Clone - id: checkout - uses: actions/checkout@v3 - with: - submodules: recursive - - - name: Build - id: cmake_build - run: | - mkdir build - cd build - cmake .. ${{ matrix.defines }} - cmake --build . --config Release - - - name: Check AVX512F support - id: check_avx512f - if: ${{ matrix.build == 'avx512' }} - continue-on-error: true - run: | - cd build - $vcdir = $(vswhere -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath) - $msvc = $(join-path $vcdir $('VC\Tools\MSVC\'+$(gc -raw $(join-path $vcdir 'VC\Auxiliary\Build\Microsoft.VCToolsVersion.default.txt')).Trim())) - $cl = $(join-path $msvc 'bin\Hostx64\x64\cl.exe') - echo 'int main(void){unsigned int a[4];__cpuid(a,7);return !(a[1]&65536);}' >> avx512f.c - & $cl /O2 /GS- /kernel avx512f.c /link /nodefaultlib /entry:main - .\avx512f.exe && echo "AVX512F: YES" && ( echo HAS_AVX512F=1 >> $env:GITHUB_ENV ) || echo "AVX512F: NO" - - #- name: Test - #id: cmake_test - #run: | - #cd build - #ctest -C Release --verbose --timeout 900 - - - name: Get commit hash - id: commit - if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} - uses: pr-mpt/actions-commit-hash@v2 - - - name: Pack artifacts - id: pack_artifacts - if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} - run: | - Copy-Item ggml/LICENSE .\build\bin\Release\ggml.txt - Copy-Item LICENSE .\build\bin\Release\stable-diffusion.cpp.txt - 7z a sd-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-${{ matrix.build }}-x64.zip .\build\bin\Release\* - - - name: Upload artifacts - if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} - uses: actions/upload-artifact@v3 - with: - path: | - sd-${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }}-bin-win-${{ matrix.build }}-x64.zip - - release: - if: ${{ ( github.event_name == 'push' && github.ref == 'refs/heads/master' ) || github.event.inputs.create_release == 'true' }} - - runs-on: ubuntu-latest - - needs: - - ubuntu-latest-cmake - - macOS-latest-cmake - - windows-latest-cmake - - steps: - - name: Download artifacts - id: download-artifact - uses: actions/download-artifact@v3 - - - name: Get commit hash - id: commit - uses: pr-mpt/actions-commit-hash@v2 - - - name: Create release - id: create_release - uses: anzz1/action-create-release@v1 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ env.BRANCH_NAME }}-${{ steps.commit.outputs.short }} - - - name: Upload release - id: upload_release - uses: actions/github-script@v3 - with: - github-token: ${{secrets.GITHUB_TOKEN}} - script: | - const path = require('path'); - const fs = require('fs'); - const release_id = '${{ steps.create_release.outputs.id }}'; - for (let file of await fs.readdirSync('./artifact')) { - if (path.extname(file) === '.zip') { - console.log('uploadReleaseAsset', file); - await github.repos.uploadReleaseAsset({ - owner: context.repo.owner, - repo: context.repo.repo, - release_id: release_id, - name: file, - data: await fs.readFileSync(`./artifact/${file}`) - }); - } - } From 4c4e95d88502b8a5d9f3d98f869ad93538d78446 Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 23:02:22 -0500 Subject: [PATCH 5/7] upload binary Signed-off-by: Derek Anderson --- .github/workflows/docker.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f6e93b03c..e56b4728f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -31,4 +31,13 @@ jobs: sudo mv c2w /usr/local/bin/c2w - name: Build using container2wasm run: | - c2w ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -o sd.wasm \ No newline at end of file + c2w ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -o sd.wasm + - name: upload artifact + - uses: actions/upload-release-asset@v1 + env: + GITHUB_TOKEN: ${{ github.token }} + with: + upload_url: ${{ steps.get_release.outputs.upload_url }} + asset_path: sd.wasm + asset_name: sd.wasm + asset_content_type: application/binary \ No newline at end of file From 18d19b56d0274f90eb7f4deb7ba2e2cea0e13751 Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 23:34:20 -0500 Subject: [PATCH 6/7] correct artifact upload Signed-off-by: Derek Anderson --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e56b4728f..7185cb4ac 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -32,7 +32,7 @@ jobs: - name: Build using container2wasm run: | c2w ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -o sd.wasm - - name: upload artifact + - name: upload artifact - uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} From c110c9b6eea078e6441be9b783e6d8e4025c8ed7 Mon Sep 17 00:00:00 2001 From: Derek Anderson Date: Tue, 17 Sep 2024 23:42:14 -0500 Subject: [PATCH 7/7] fix Signed-off-by: Derek Anderson --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 7185cb4ac..9aa245f86 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -33,7 +33,7 @@ jobs: run: | c2w ghcr.io/${{ github.repository }}:${{ steps.vars.outputs.tag_name }} -o sd.wasm - name: upload artifact - - uses: actions/upload-release-asset@v1 + uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ github.token }} with: