name: Desktop Node CI # This action run on 'git push' and PRs on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} env: desktop-directory: ./desktop strategy: fail-fast: false matrix: node-version: [18.x] os: ['ubuntu-latest', 'windows-latest', 'macos-latest'] steps: - uses: actions/checkout@v3.5.3 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v3.6.0 with: node-version: ${{ matrix.node-version }} - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - uses: actions/cache@v2 id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: yarn install (with retry) uses: nick-invision/retry@v2.6.0 with: command: cd ${{env.desktop-directory}}; yarn timeout_minutes: 30 max_attempts: 3 - name: lint run: yarn lint working-directory: ${{env.desktop-directory}} - name: test run: yarn test --coverage working-directory: ${{env.desktop-directory}} - name: coveralls uses: coverallsapp/github-action@v1.1.2 continue-on-error: true with: github-token: ${{ secrets.GITHUB_TOKEN }} base-path: ${{env.desktop-directory}} path-to-lcov: ${{env.desktop-directory}}/coverage/lcov.info - name: build linux if: matrix.os == 'ubuntu-latest' run: yarn build --linux working-directory: ${{env.desktop-directory}} - name: build macos if: matrix.os == 'macos-latest' run: yarn build --mac --mac-dmg working-directory: ${{env.desktop-directory}} - name: build windows if: matrix.os == 'windows-latest' run: yarn build --win working-directory: ${{env.desktop-directory}} - name: upload linux artifact uses: actions/upload-artifact@v3.1.2 if: matrix.os == 'ubuntu-latest' with: name: Flipper-linux.zip path: dist/Flipper-linux.zip - name: upload windows artifact uses: actions/upload-artifact@v3.1.2 if: matrix.os == 'windows-latest' with: name: Flipper-win.zip path: dist/Flipper-win.zip - name: upload mac zip artifact uses: actions/upload-artifact@v3.1.2 if: matrix.os == 'macos-latest' with: name: Flipper-mac.zip path: dist/Flipper-mac.zip - name: upload mac dmg artifact uses: actions/upload-artifact@v3.1.2 if: matrix.os == 'macos-latest' with: name: Flipper-mac.dmg path: dist/Flipper-mac.dmg