Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add linux armv7l and win/osx arm64 builds #2113

Merged
merged 30 commits into from
Sep 6, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
344c230
Add linux armv7l
Jai-JAP Mar 8, 2022
6c4f382
Add linux armv7l
Jai-JAP Mar 8, 2022
48832a7
Update release.yml
Jai-JAP Mar 8, 2022
b06525d
Update build.yml
Jai-JAP Mar 8, 2022
e9b8d69
Update release.yml
Jai-JAP Mar 8, 2022
cf8b3ea
Merge branch 'FreeTubeApp:development' into patch-1
Jai-JAP Mar 10, 2022
3d3910b
Update build.js
Jai-JAP May 5, 2022
83e6122
Update release.yml
Jai-JAP May 5, 2022
cbed93b
Update build.yml
Jai-JAP May 5, 2022
e291e00
Update release.yml
Jai-JAP May 5, 2022
ccd6250
Merge pull request #1 from Jai-JAP/patch-2
Jai-JAP May 5, 2022
8a6f5ee
Merge branch 'development' into patch-1
Jai-JAP May 31, 2022
172b5b8
Update release.yml
Jai-JAP May 31, 2022
6a7b68c
Update build.yml
Jai-JAP May 31, 2022
4009307
Update _scripts/build.js
Jai-JAP Jun 22, 2022
bab9ce4
Update _scripts/build.js
Jai-JAP Jun 22, 2022
1bbbbe5
Update _scripts/build.js
Jai-JAP Jun 22, 2022
9304ab8
Update build.yml
Jai-JAP Jun 23, 2022
c6eed9b
Update build.yml
Jai-JAP Jun 23, 2022
b3c64e3
Update release.yml
Jai-JAP Jun 23, 2022
6e11288
Remove squirrel build from windows as unused
Jai-JAP Jun 23, 2022
9013af7
Update build.yml
Jai-JAP Jun 23, 2022
a829ddd
Update release.yml
Jai-JAP Jun 23, 2022
4484b49
Update build.yml
Jai-JAP Jun 26, 2022
88eab30
Update release.yml
Jai-JAP Jun 26, 2022
3dfa6e9
Update build.yml
Jai-JAP Jun 26, 2022
1fe5806
Update release.yml
Jai-JAP Jun 26, 2022
266ddaf
Update .github/workflows/release.yml
Jai-JAP Jun 27, 2022
9af61bc
Update .github/workflows/build.yml
Jai-JAP Jun 27, 2022
010fdfc
Merge branch 'FreeTubeApp:development' into patch-1
Jai-JAP Aug 27, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 115 additions & 20 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,26 +6,45 @@ name: Build
on:
push:
branches: [ master, development, '**-RC' ]
workflow_dispatch:
Jai-JAP marked this conversation as resolved.
Show resolved Hide resolved

jobs:
build:
strategy:
matrix:
node-version: [16.x]
runtime: [ linux-x64, linux-arm64, win-x64, osx-x64 ]
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:
Expand Down Expand Up @@ -73,15 +92,19 @@ jobs:


- name: Install libarchive-tools
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-x64')
if: startsWith(matrix.os, 'ubuntu')
run: sudo apt -y install libarchive-tools; echo "Version Number ${{ toJson(job) }} ${{ toJson(needs) }}"

- name: Build x64 with Node.js ${{ matrix.node-version}}
if: contains(matrix.runtime, 'x64')
run: npm run build --if-present

- name: Build ARMv7l with Node.js ${{ matrix.node-version}}
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
run: npm run build:arm32 --if-present

- name: Build ARM64 with Node.js ${{ matrix.node-version}}
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
if: contains(matrix.runtime, 'arm64')
run: npm run build:arm64 --if-present

- name: Upload Linux .zip x64 Artifact
Expand All @@ -91,7 +114,14 @@ jobs:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_x64
path: build/freetube-${{ steps.versionNumber.outputs.result }}.zip

- name: Upload Linux .zip ARM Artifact
- name: Upload Linux .zip ARMv7l Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_linux_portable_armv7l
path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.zip

- name: Upload Linux .zip ARM64 Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
Expand All @@ -105,7 +135,14 @@ jobs:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.deb
path: build/freetube_${{ steps.versionNumber.outputs.result }}_amd64.deb

- name: Upload .deb ARM Artifact
- name: Upload .deb ARMv7l Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_armv7l.deb
path: build/freetube_${{ steps.versionNumber.outputs.result }}_armv7l.deb

- name: Upload .deb ARM64 Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
Expand All @@ -119,7 +156,14 @@ jobs:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.AppImage
path: build/FreeTube-${{ steps.versionNumber.outputs.result }}.AppImage

- name: Upload AppImage ARM Artifact
- name: Upload AppImage ARMv7l Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_armv7l.AppImage
path: build/FreeTube-${{ steps.versionNumber.outputs.result }}-armv7l.AppImage

- name: Upload AppImage ARM64 Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
Expand All @@ -132,8 +176,10 @@ jobs:
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_amd64.rpm
path: build/freetube-${{ steps.versionNumber.outputs.result }}.x86_64.rpm

# rpm are not built for armv7l

- name: Upload .rpm ARM Artifact
- name: Upload .rpm ARM64 Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
Expand All @@ -147,7 +193,14 @@ jobs:
name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_amd64.apk
path: build/freetube-${{ steps.versionNumber.outputs.result }}.apk

- name: Upload Alpine .apk ARM Artifact
- name: Upload Alpine .apk ARMv7l Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-armv7l')
with:
name: freetube_${{ steps.versionNumber.outputs.result }}_alpine_armv7l.apk
path: build/freetube-${{ steps.versionNumber.outputs.result }}-armv7l.apk

- name: Upload Alpine .apk ARM64 Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.runtime, 'linux-arm64')
with:
Expand All @@ -168,30 +221,72 @@ jobs:
# name: freetube_${{ steps.versionNumber.outputs.result }}_static_web
# path: dist/web

- name: Upload Windows .exe Artifact
- name: Upload Windows x64 .exe Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-setup-x64.exe
path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe

- name: Upload Windows arm64 .exe Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-setup-arm64.exe
path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe

- name: Upload Windows x64 .zip Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'windows')
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-win-x64-portable
path: build/freetube-${{ steps.versionNumber.outputs.result }}-win.zip

- name: Upload Windows .zip Artifact
- name: Upload Windows arm64 .zip Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'windows')
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-setup-x64.exe
path: build/freetube Setup ${{ steps.versionNumber.outputs.result }}.exe

- name: Upload Windows Portable Artifact
name: freetube-${{ steps.versionNumber.outputs.result }}-win-arm64-portable
path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-win.zip
- name: Upload Windows x64 Portable Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'windows')
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-portable-x64.exe
path: build/freetube ${{ steps.versionNumber.outputs.result }}.exe

- name: Upload Mac .dmg Artifact
- name: Upload Windows arm64 Portable Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'windows') && startsWith(matrix.runtime, 'win-arm64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-portable-arm64.exe
path: build/freetube ${{ steps.versionNumber.outputs.result }}.exe

- name: Upload Mac x64 .dmg Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'macos')
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-mac.dmg
name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.dmg
path: build/freetube-${{ steps.versionNumber.outputs.result }}.dmg

# - name: Upload Mac arm64 .dmg Artifact
# uses: actions/upload-artifact@v2
# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64')
# with:
# name: freetube-${{ steps.versionNumber.outputs.result }}-mac-arm64.dmg
# path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64.dmg

- name: Upload Mac x64 .zip Artifact
uses: actions/upload-artifact@v2
if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-x64')
with:
name: freetube-${{ steps.versionNumber.outputs.result }}-mac-x64.zip
path: build/freetube-${{ steps.versionNumber.outputs.result }}-mac.zip

# - name: Upload Mac arm64 .zip Artifact
# uses: actions/upload-artifact@v2
# if: startsWith(matrix.os, 'macos') && startsWith(matrix.runtime, 'osx-arm64')
# with:
# name: freetube-${{ steps.versionNumber.outputs.result }}-mac-arm64.zip
# path: build/freetube-${{ steps.versionNumber.outputs.result }}-arm64-mac.zip
Loading