name: Release on: workflow_dispatch: push: tags: - v*.*.* permissions: contents: write jobs: release: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, windows-latest, ubuntu-latest] steps: - name: Check out Git repository uses: actions/checkout@v3 - name: Install Node.js uses: actions/setup-node@v3 with: node-version: 20 - name: Install corepack run: corepack enable && corepack prepare yarn@4.3.1 --activate - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - name: Cache yarn dependencies uses: actions/cache@v3 with: path: | ${{ steps.yarn-cache-dir-path.outputs.dir }} node_modules key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - name: Install Dependencies run: yarn install - name: Build Linux if: matrix.os == 'ubuntu-latest' run: | yarn download:npm linux yarn build:linux env: GH_TOKEN: ${{ secrets.GH_TOKEN }} - name: Build Mac if: matrix.os == 'macos-latest' run: | yarn download:npm darwin yarn build:mac env: CSC_LINK: ${{ secrets.CSC_LINK }} CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }} APPLE_ID: ${{ vars.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ vars.APPLE_APP_SPECIFIC_PASSWORD }} APPLE_TEAM_ID: ${{ vars.APPLE_TEAM_ID }} GH_TOKEN: ${{ secrets.GH_TOKEN }} - name: Build Windows if: matrix.os == 'windows-latest' run: yarn build:win env: GH_TOKEN: ${{ secrets.GH_TOKEN }} - name: Replace spaces in filenames run: node scripts/replace-spaces.js - name: Release uses: softprops/action-gh-release@v2 with: draft: true files: | dist/*.exe dist/*.zip dist/*.dmg dist/*.AppImage dist/*.snap dist/*.deb dist/*.rpm dist/*.tar.gz dist/latest*.yml dist/*.blockmap env: GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}