diff --git a/.gitea/workflows/build-release.yml b/.gitea/workflows/build-release.yml index 4d3b6fb..63f4005 100644 --- a/.gitea/workflows/build-release.yml +++ b/.gitea/workflows/build-release.yml @@ -9,30 +9,17 @@ on: type: string jobs: - plan: - runs-on: fedora - outputs: - flavours: ${{ steps.plan.outputs.flavours }} - version: ${{ steps.plan.outputs.version }} - steps: - - uses: actions/checkout@v4 - - id: plan - run: | - version="${TAG#v}" - echo "version=${version}" >> "$GITHUB_OUTPUT" - # Emit flavours as a JSON array for matrix consumption - flavours=$(yq --compact-output '.flavours' flavours.yml) - echo "flavours=${flavours}" >> "$GITHUB_OUTPUT" - env: - TAG: ${{ inputs.tag }} - build: - needs: plan - runs-on: cuda-13.0 strategy: fail-fast: false matrix: - flavour: ${{ fromJSON(needs.plan.outputs.flavours) }} + include: + - name: cuda13 + runner: cuda-13.0 + cuda_home: /usr/local/cuda-13.0 + cargo_features: "cuda cudnn flash-attn nccl" + compute_caps: "120" + runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v4 @@ -44,57 +31,58 @@ jobs: - name: Build run: ./script/build-binary.sh env: - FLAVOUR_NAME: ${{ matrix.flavour.name }} - CUDA_HOME: ${{ matrix.flavour.cuda_home }} - CARGO_FEATURES: ${{ matrix.flavour.cargo_features }} - CUDA_COMPUTE_CAP: ${{ matrix.flavour.compute_caps }} + FLAVOUR_NAME: ${{ matrix.name }} + CUDA_HOME: ${{ matrix.cuda_home }} + CARGO_FEATURES: ${{ matrix.cargo_features }} + CUDA_COMPUTE_CAP: ${{ matrix.compute_caps }} SRC_DIR: src - name: Upload binary artifact uses: actions/upload-artifact@v3 with: - name: mistralrs-server-${{ matrix.flavour.name }} - path: artifacts/mistralrs-server-${{ matrix.flavour.name }} + name: mistralrs-server-${{ matrix.name }} + path: artifacts/mistralrs-server-${{ matrix.name }} retention-days: 1 package: - needs: [plan, build] + needs: build runs-on: fedora strategy: fail-fast: false matrix: - flavour: ${{ fromJSON(needs.plan.outputs.flavours) }} + include: + - name: cuda13 steps: - uses: actions/checkout@v4 - #- name: Install build tools - # run: sudo dnf install -y rpm-build rpmdevtools systemd-rpm-macros - - name: Download binary uses: actions/download-artifact@v3 with: - name: mistralrs-server-${{ matrix.flavour.name }} + name: mistralrs-server-${{ matrix.name }} path: artifacts/ - name: Build RPM run: | + version="${TAG#v}" rpmdev-setuptree - cp artifacts/mistralrs-server-${{ matrix.flavour.name }} ~/rpmbuild/SOURCES/ + cp artifacts/mistralrs-server-${{ matrix.name }} ~/rpmbuild/SOURCES/ cp rpm/systemd/mistralrs@.service ~/rpmbuild/SOURCES/ cp rpm/systemd/mistralrs@.conf.example ~/rpmbuild/SOURCES/ rpmbuild -bb rpm/mistralrs.spec \ - --define "mistralrs_version ${{ needs.plan.outputs.version }}" \ - --define "mistralrs_flavour ${{ matrix.flavour.name }}" + --define "mistralrs_version ${version}" \ + --define "mistralrs_flavour ${{ matrix.name }}" + env: + TAG: ${{ inputs.tag }} - name: Upload RPM uses: actions/upload-artifact@v3 with: - name: rpm-${{ matrix.flavour.name }} + name: rpm-${{ matrix.name }} path: ~/rpmbuild/RPMS/x86_64/*.rpm retention-days: 7 publish: - needs: [plan, package] + needs: package runs-on: fedora # concurrency ensures only one publish runs at a time — repo metadata # corruption is a nightmare if two createrepo_c processes race. @@ -104,9 +92,6 @@ jobs: steps: - uses: actions/checkout@v4 - #- name: Install tools - # run: sudo dnf install -y createrepo_c rpm-sign rsync - - name: Download all RPMs uses: actions/download-artifact@v3 with: diff --git a/flavours.yml b/flavours.yml deleted file mode 100644 index ed62ee4..0000000 --- a/flavours.yml +++ /dev/null @@ -1,5 +0,0 @@ -flavours: - - name: cuda13 - cuda_home: /usr/local/cuda-13.0 - cargo_features: "cuda cudnn flash-attn nccl" - compute_caps: "120"