Upload Release #37
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a basic workflow that is manually triggered | |
name: Upload Release | |
# Controls when the action will run. Workflow runs when manually triggered using the UI | |
# or API. | |
on: | |
workflow_dispatch: | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
build: | |
strategy: | |
matrix: | |
node-version: [20.x] | |
runtime: | |
- linux-x64 | |
- linux-armv7l | |
- linux-arm64 | |
- win-x64 | |
- win-arm64 | |
- osx-x64 | |
# `osx-arm64` disabled due to "macOS gatekeeper" | |
# See details in https://github.com/FreeTubeApp/FreeTube/pull/2113 | |
# - osx-arm64 | |
include: | |
- runtime: linux-x64 | |
os: ubuntu-latest | |
- runtime: linux-armv7l | |
os: ubuntu-latest | |
- runtime: linux-arm64 | |
os: ubuntu-latest | |
- runtime: osx-x64 | |
os: macOS-latest | |
# - runtime: osx-arm64 | |
# os: macOS-latest | |
- runtime: win-x64 | |
os: windows-latest | |
- runtime: win-arm64 | |
os: windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: "yarn" | |
- run: yarn run ci | |
- run: yarn run lint | |
- name: Get Version Number | |
id: getPackageInfo | |
uses: jaywcjlove/github-action-package@main | |
- name: Build x64 with Node.js ${{ matrix.node-version}} | |
if: contains(matrix.runtime, 'x64') | |
run: yarn run build | |
- name: Build ARMv7l with Node.js ${{ matrix.node-version}} | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') | |
run: yarn run build:arm32 | |
- name: Build ARM64 with Node.js ${{ matrix.node-version}} | |
if: contains(matrix.runtime, 'arm64') | |
run: yarn run build:arm64 | |
- name: Upload AppImage x64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube_${{ steps.getPackageInfo.outputs.version }}_amd64.AppImage | |
asset_path: build/FreeTube-${{ steps.getPackageInfo.outputs.version }}.AppImage | |
asset_content_type: application/vnd.appimage | |
- name: Upload Linux .zip x64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-linux-portable-x64.zip | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}.zip | |
asset_content_type: application/zip | |
- name: Upload Linux .7z x64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-linux-portable-x64.7z | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}.7z | |
asset_content_type: application/x-7z-compressed | |
- name: Upload Linux .zip ARMv7l Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-linux-portable-armv7l.zip | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-armv7l.zip | |
asset_content_type: application/zip | |
- name: Upload Linux .7z ARMv7l Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-linux-portable-armv7l.7z | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-armv7l.7z | |
asset_content_type: application/x-7z-compressed | |
- name: Upload Linux .zip ARM64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-linux-portable-arm64.zip | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-arm64.zip | |
asset_content_type: application/zip | |
- name: Upload Linux .7z ARM64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-linux-portable-arm64.7z | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-arm64.7z | |
asset_content_type: application/x-7z-compressed | |
- name: Upload Linux .deb x64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube_${{ steps.getPackageInfo.outputs.version }}_amd64.deb | |
asset_path: build/freetube_${{ steps.getPackageInfo.outputs.version }}_amd64.deb | |
asset_content_type: application/vnd.debian.binary-package | |
- name: Upload Linux .deb ARMv7l Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube_${{ steps.getPackageInfo.outputs.version }}_armv7l.deb | |
asset_path: build/freetube_${{ steps.getPackageInfo.outputs.version }}_armv7l.deb | |
asset_content_type: application/vnd.debian.binary-package | |
- name: Upload Linux .deb ARM64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube_${{ steps.getPackageInfo.outputs.version }}_arm64.deb | |
asset_path: build/freetube_${{ steps.getPackageInfo.outputs.version }}_arm64.deb | |
asset_content_type: application/vnd.debian.binary-package | |
- name: Upload Linux .rpm x64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube_${{ steps.getPackageInfo.outputs.version }}_amd64.rpm | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}.x86_64.rpm | |
asset_content_type: application/x-rpm | |
# rpm are not built for armv7l | |
- name: Upload Linux .rpm ARM64 Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube_${{ steps.getPackageInfo.outputs.version }}_arm64.rpm | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}.aarch64.rpm | |
asset_content_type: application/x-rpm | |
- name: Upload Windows x64 .exe Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-setup-x64.exe | |
asset_path: build/freetube Setup ${{ steps.getPackageInfo.outputs.version }}.exe | |
asset_content_type: application/x-ms-dos-executable | |
- name: Upload Windows arm64 .exe Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-setup-arm64.exe | |
asset_path: build/freetube Setup ${{ steps.getPackageInfo.outputs.version }}.exe | |
asset_content_type: application/x-ms-dos-executable | |
- name: Upload Windows x64 .zip Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-win-x64-portable.zip | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-win.zip | |
asset_content_type: application/zip | |
- name: Upload Windows x64 .7z Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-win-x64-portable.7z | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-win.7z | |
asset_content_type: application/x-7z-compressed | |
- name: Upload Windows arm64 .zip Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-win-arm64-portable.zip | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-arm64-win.zip | |
asset_content_type: application/zip | |
- name: Upload Windows arm64 .7z Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-win-arm64-portable.7z | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-arm64-win.7z | |
asset_content_type: application/x-7z-compressed | |
- name: Upload Windows x64 portable Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-win-x64-portable.exe | |
asset_path: build/FreeTube ${{ steps.getPackageInfo.outputs.version }}.exe | |
asset_content_type: application/x-ms-dos-executable | |
- name: Upload Windows arm64 portable Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-win-arm64-portable.exe | |
asset_path: build/FreeTube ${{ steps.getPackageInfo.outputs.version }}.exe | |
asset_content_type: application/x-ms-dos-executable | |
- name: Upload Mac x64 .dmg Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-mac-x64.dmg | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}.dmg | |
asset_content_type: application/x-apple-diskimage | |
# - name: Upload Mac arm64 .dmg Release | |
# uses: actions/upload-release-asset@v1 | |
# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
# asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-mac-arm64.dmg | |
# asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-arm64.dmg | |
# asset_content_type: application/x-apple-diskimage | |
- name: Upload Mac x64 .zip Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-mac-x64.zip | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-mac.zip | |
asset_content_type: application/zip | |
- name: Upload Mac x64 .7z Release | |
uses: actions/upload-release-asset@v1 | |
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64') | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-mac-x64.7z | |
asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-mac.7z | |
asset_content_type: application/x-7z-compressed | |
# - name: Upload Mac arm64 .zip Release | |
# uses: actions/upload-release-asset@v1 | |
# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64') | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# with: | |
# upload_url: https://uploads.github.com/repos/FreeTubeApp/FreeTube/releases/${{ secrets.UPLOAD_ID }}/assets{?name,label} | |
# asset_name: freetube-${{ steps.getPackageInfo.outputs.version }}-mac-arm64.zip | |
# asset_path: build/freetube-${{ steps.getPackageInfo.outputs.version }}-arm64-mac.zip | |
# asset_content_type: application/x-apple-diskimage | |