diff --git a/mediarepo-ui/.github/workflows/build.yml b/mediarepo-ui/.github/workflows/build.yml new file mode 100644 index 0000000..73a3f76 --- /dev/null +++ b/mediarepo-ui/.github/workflows/build.yml @@ -0,0 +1,131 @@ +name: Build + +on: + workflow_dispatch: + push: + branches: + - main + - github-actions + +jobs: + build-debug: + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + + - name: Cache Dependencies + id: cache-dependencies + uses: actions/cache@v2 + with: + path: | + node_modules + src-tauri/target/**/deps + /home/runner/.cargo/bin + ~/.cargo + key: ${{ runner.os }}-dependencies-${{ hashFiles('src-tauri/Cargo.lock') }}-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-dependencies- + ${{ runner.os }}-release-dependencies- + + - name: Use Node.js 16 + uses: actions/setup-node@v1 + with: + node-version: 16 + + - name: Install Tauri + run: cargo install tauri-cli --version ^1.0.0-beta + + - name: Install Angular CLI + run: npm install -g @angular/cli + + - name: Install yarn + run: npm install -g yarn + + - name: Install dependencies + run: yarn install + + - name: Install OS-specific dependencies + uses: knicknic/os-specific-run@v1.0.3 + with: + linux: | + sudo apt update + sudo apt install libwebkit2gtk-4.0-dev libgtk-3-dev libappindicator3-dev -y + + - name: Build project + run: cargo tauri build --debug + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: mediarepo-ui-${{ runner.os }}-debug + path: | + src-tauri/target/debug/bundle + src-tauri/target/debug/mediarepo-ui* + + build-release: + + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + + steps: + - uses: actions/checkout@v2 + + - name: Cache Dependencies + id: cache-dependencies + uses: actions/cache@v2 + with: + path: | + node_modules + src-tauri/target + /home/runner/.cargo + ~/.cargo + key: ${{ runner.os }}-release-dependencies-${{ hashFiles('src-tauri/Cargo.lock') }}-${{ hashFiles('yarn.lock') }} + restore-keys: | + ${{ runner.os }}-release-dependencies- + ${{ runner.os }}-dependencies- + + - name: Use Node.js 16 + uses: actions/setup-node@v1 + with: + node-version: 16 + + - name: Install Tauri + run: cargo install tauri-cli --version ^1.0.0-beta + + - name: Install Angular CLI + run: npm install -g @angular/cli + + - name: Install yarn + run: npm install -g yarn + + - name: Install dependencies + run: yarn install + + - name: Install OS-specific dependencies + uses: knicknic/os-specific-run@v1.0.3 + with: + linux: | + sudo apt update + sudo apt install libwebkit2gtk-4.0-dev libgtk-3-dev libappindicator3-dev -y + + - name: Build project + run: cargo tauri build + + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: mediarepo-ui-${{ runner.os }}-release + path: | + src-tauri/target/release/bundle + src-tauri/target/release/mediarepo-ui* \ No newline at end of file