multi-downloader-nx_mirror/.github/workflows/release-matrix.yml
2026-03-24 22:05:24 +03:00

133 lines
5 KiB
YAML

name: Release Builds
on:
release:
types: [published]
permissions:
contents: write
jobs:
build:
strategy:
matrix:
include:
# WINDOWS
- os: ubuntu-latest
build_type: windows
build_arch: x64
gui: cli
- os: macos-latest
build_type: windows
build_arch: arm64
gui: cli
- os: ubuntu-latest
build_type: windows
build_arch: x64
gui: gui
- os: macos-latest
build_type: windows
build_arch: arm64
gui: gui
# MACOS
- os: ubuntu-latest
build_type: macos
build_arch: x64
gui: cli
- os: macos-latest
build_type: macos
build_arch: arm64
gui: cli
- os: ubuntu-latest
build_type: macos
build_arch: x64
gui: gui
- os: macos-latest
build_type: macos
build_arch: arm64
gui: gui
# LINUX
- os: ubuntu-latest
build_type: linux
build_arch: x64
gui: cli
- os: macos-latest
build_type: linux
build_arch: arm64
gui: cli
- os: ubuntu-latest
build_type: linux
build_arch: x64
gui: gui
- os: macos-latest
build_type: linux
build_arch: arm64
gui: gui
# ALPINE
- os: ubuntu-latest
build_type: alpine
build_arch: x64
gui: cli
- os: macos-latest
build_type: alpine
build_arch: arm64
gui: cli
- os: ubuntu-latest
build_type: alpine
build_arch: x64
gui: gui
- os: macos-latest
build_type: alpine
build_arch: arm64
gui: gui
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v6
- uses: pnpm/action-setup@v5
with:
version: latest
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 24
check-latest: true
- name: Install Node modules
run: |
pnpm install
- name: Get name and version from package.json
run: |
test -n $(node -p -e "require('./package.json').name") &&
test -n $(node -p -e "require('./package.json').version") &&
echo PACKAGE_NAME=$(node -p -e "require('./package.json').name") >> $GITHUB_ENV &&
echo PACKAGE_VERSION=$(node -p -e "require('./package.json').version") >> $GITHUB_ENV || exit 1
- name: Make build
run: pnpm run build-${{ matrix.build_type }}-${{ matrix.build_arch }}-${{ matrix.gui }}
- name: Upload assets to the GitHub Release
uses: softprops/action-gh-release@v2
with:
files: |
./lib/_builds/multi-downloader-nx-${{ matrix.build_type }}-${{ matrix.build_arch }}-${{ matrix.gui }}.7z
./lib/_builds/multi-downloader-nx-${{ matrix.build_type }}-${{ matrix.build_arch }}-${{ matrix.gui }}.7z.sha256
fail_on_unmatched_files: true
build-docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v4
- name: Login to DockerHub
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push Docker images
uses: docker/build-push-action@v7
with:
github-token: ${{ github.token }}
push: true
tags: |
"multidl/multi-downloader-nx:${{ github.event.release.tag_name }}"
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}