From f7639b69cd8c271a0c402b8bd965104014153d74 Mon Sep 17 00:00:00 2001 From: an-lee Date: Tue, 19 Mar 2024 08:26:01 +0800 Subject: [PATCH] refactor build-enjoy-app workflow --- .../build-enjoy-app/build-enjoy-app-linux.yml | 35 +++++++++++++++ .../build-enjoy-app-macos12.yml} | 22 +++------- .../build-enjoy-app-macos14.yml | 43 +++++++++++++++++++ .../build-enjoy-app-windows.yml | 34 +++++++++++++++ 4 files changed, 119 insertions(+), 15 deletions(-) create mode 100644 .github/workflows/build-enjoy-app/build-enjoy-app-linux.yml rename .github/workflows/{build-enjoy-app.yml => build-enjoy-app/build-enjoy-app-macos12.yml} (56%) create mode 100644 .github/workflows/build-enjoy-app/build-enjoy-app-macos14.yml create mode 100644 .github/workflows/build-enjoy-app/build-enjoy-app-windows.yml diff --git a/.github/workflows/build-enjoy-app/build-enjoy-app-linux.yml b/.github/workflows/build-enjoy-app/build-enjoy-app-linux.yml new file mode 100644 index 00000000..88721826 --- /dev/null +++ b/.github/workflows/build-enjoy-app/build-enjoy-app-linux.yml @@ -0,0 +1,35 @@ +name: Build Enjoy App (Linux) +on: + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - uses: actions/cache@v4 + id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + with: + path: "**/node_modules" + key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install dependencies + run: yarn install + + - name: Make + env: + GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} + run: yarn run enjoy:make + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: Enjoy-${{ runner.os }}-x64-build-${{ github.sha }} + path: | + enjoy/out/make/**/*.deb + enjoy/out/make/**/*.rpm diff --git a/.github/workflows/build-enjoy-app.yml b/.github/workflows/build-enjoy-app/build-enjoy-app-macos12.yml similarity index 56% rename from .github/workflows/build-enjoy-app.yml rename to .github/workflows/build-enjoy-app/build-enjoy-app-macos12.yml index 5cda7dbd..fdec32cc 100644 --- a/.github/workflows/build-enjoy-app.yml +++ b/.github/workflows/build-enjoy-app/build-enjoy-app-macos12.yml @@ -1,14 +1,10 @@ -name: Build Enjoy App +name: Build Enjoy App (macos-12) on: workflow_dispatch: jobs: build: - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [macos-12, macos-14, windows-latest, ubuntu-latest] + runs-on: macos-12 steps: - uses: actions/checkout@v4 @@ -20,13 +16,12 @@ jobs: id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: "**/node_modules" - key: ${{ matrix.os }}-${{ hashFiles('**/yarn.lock') }} + key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} - name: Install dependencies run: yarn install - name: Install Apple certificate - if: contains(matrix.os, 'macos') env: MACOS_CERTIFICATE_APPLICATION_BASE64: ${{ secrets.MACOS_CERTIFICATE_APPLICATION_BASE64 }} MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} @@ -35,17 +30,14 @@ jobs: - name: Make env: GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} - APPLE_ID: ${{ runner.os == 'macOS' && secrets.APPLE_ID || '' }} - APPLE_APP_PASSWORD: ${{ runner.os == 'macOS' && secrets.APPLE_APP_PASSWORD || '' }} - APPLE_TEAM_ID: ${{ runner.os == 'macOS' && secrets.APPLE_TEAM_ID || '' }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_APP_PASSWORD: ${{ secrets.APPLE_APP_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} run: yarn run enjoy:make - name: Upload artifact uses: actions/upload-artifact@v4 with: - name: Enjoy-${{ runner.os }}-${{ matrix.os == 'macos-14' && 'arm64' || 'x64' }}-build-${{ github.sha }} + name: Enjoy-${{ runner.os }}-x64-build-${{ github.sha }} path: | - enjoy/out/make/**/*.deb - enjoy/out/make/**/*.rpm - enjoy/out/make/**/*.exe enjoy/out/make/**/*.dmg diff --git a/.github/workflows/build-enjoy-app/build-enjoy-app-macos14.yml b/.github/workflows/build-enjoy-app/build-enjoy-app-macos14.yml new file mode 100644 index 00000000..fb2a8ee2 --- /dev/null +++ b/.github/workflows/build-enjoy-app/build-enjoy-app-macos14.yml @@ -0,0 +1,43 @@ +name: Build Enjoy App (macos-14) +on: + workflow_dispatch: + +jobs: + build: + runs-on: macos-14 + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - uses: actions/cache@v4 + id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + with: + path: "**/node_modules" + key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install dependencies + run: yarn install + + - name: Install Apple certificate + env: + MACOS_CERTIFICATE_APPLICATION_BASE64: ${{ secrets.MACOS_CERTIFICATE_APPLICATION_BASE64 }} + MACOS_CERTIFICATE_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PASSWORD }} + run: ./enjoy/scripts/add-macos-cert.sh + + - name: Make + env: + GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_APP_PASSWORD: ${{ secrets.APPLE_APP_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + run: yarn run enjoy:make + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: Enjoy-${{ runner.os }}-arm64-build-${{ github.sha }} + path: | + enjoy/out/make/**/*.dmg diff --git a/.github/workflows/build-enjoy-app/build-enjoy-app-windows.yml b/.github/workflows/build-enjoy-app/build-enjoy-app-windows.yml new file mode 100644 index 00000000..72acc16c --- /dev/null +++ b/.github/workflows/build-enjoy-app/build-enjoy-app-windows.yml @@ -0,0 +1,34 @@ +name: Build Enjoy App (Windows) +on: + workflow_dispatch: + +jobs: + build: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v4 + with: + node-version: 20 + + - uses: actions/cache@v4 + id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) + with: + path: "**/node_modules" + key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} + + - name: Install dependencies + run: yarn install + + - name: Make + env: + GITHUB_TOKEN: ${{ secrets.PUBLISH_TOKEN }} + run: yarn run enjoy:make + + - name: Upload artifact + uses: actions/upload-artifact@v4 + with: + name: Enjoy-${{ runner.os }}-x64-build-${{ github.sha }} + path: | + enjoy/out/make/**/*.exe