Skip to content

Commit

Permalink
Add apple silicon job
Browse files Browse the repository at this point in the history
  • Loading branch information
Rexios80 committed Feb 20, 2024
1 parent c92ab5b commit 9c9dc40
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 25 deletions.
68 changes: 52 additions & 16 deletions .github/workflows/create-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,32 @@ jobs:
build_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1

- name: Install dependencies
run: dart pub get

- name: Compile
run: dart compile exe bin/hds_desktop.dart -o hds_desktop_linux
run: dart compile exe bin/hds_desktop.dart -o hds_desktop

- name: Archive artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: linux
path: hds_desktop_linux
path: hds_desktop

build_macos:
build_macos_intel:
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1

- name: Install dependencies
run: dart pub get

- name: Compile
run: dart compile exe bin/hds_desktop.dart -o hds_desktop_macos
run: dart compile exe bin/hds_desktop.dart -o hds_desktop

# TODO: Make notarization work
- name: Import Code-Signing Certificates
Expand All @@ -55,37 +55,73 @@ jobs:
run: gon macos/gon.json

- name: Archive artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: macos
path: build/hds_desktop_macos.zip
name: macos_intel
path: build/hds_desktop.zip

build_macos_apple_silicon:
runs-on: flyci-macos-large-latest-m1
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1

- name: Install dependencies
run: dart pub get

- name: Compile
run: dart compile exe bin/hds_desktop.dart -o hds_desktop

# TODO: Make notarization work
- name: Import Code-Signing Certificates
uses: Apple-Actions/import-codesign-certs@v1
with:
# The certificates in a PKCS12 file encoded as a base64 string
p12-file-base64: ${{ secrets.DISTRIBUTION_CERTIFICATE_DATA }}
# The password used to import the PKCS12 file.
p12-password: ${{ secrets.DISTRIBUTION_CERTIFICATE_PASSPHRASE }}

- name: Install gon via Homebrew
run: brew install mitchellh/gon/gon

- name: Sign and notarize
env:
NOTARIZATION_PASSWORD: ${{ secrets.NOTARIZATION_PASSWORD }}
run: gon macos/gon.json

- name: Archive artifact
uses: actions/upload-artifact@v4
with:
name: macos_apple_silicon
path: build/hds_desktop.zip

build_windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1

- name: Install dependencies
run: dart pub get

- name: Compile
run: dart compile exe bin/hds_desktop.dart -o hds_desktop_windows.exe
run: dart compile exe bin/hds_desktop.dart -o hds_desktop.exe

- name: Archive artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: windows
path: hds_desktop_windows.exe
path: hds_desktop.exe

deploy:
runs-on: ubuntu-latest
needs: [build_linux, build_macos, build_windows]
needs:
[build_linux, build_macos_intel, build_macos_apple_silicon, build_windows]
if: success()

steps:
- name: Download artifacts
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4

- name: Create release draft
uses: ncipollo/release-action@v1
Expand Down
26 changes: 17 additions & 9 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,18 @@ packages:
dependency: transitive
description:
name: flutter_lints
sha256: ad76540d21c066228ee3f9d1dad64a9f7e46530e8bb7c85011a88bc1fd874bc5
sha256: e2a421b7e59244faef694ba7b30562e489c2b489866e505074eb005cd7060db7
url: "https://pub.dev"
source: hosted
version: "3.0.0"
version: "3.0.1"
http:
dependency: "direct main"
description:
name: http
sha256: "759d1a329847dd0f39226c688d3e06a6b8679668e350e2891a6474f8b4bb8525"
sha256: d4872660c46d929f6b8a9ef4e7a7eff7e49bbf0c4ec3f385ee32df5119175139
url: "https://pub.dev"
source: hosted
version: "1.1.0"
version: "1.1.2"
http_methods:
dependency: transitive
description:
Expand Down Expand Up @@ -93,10 +93,10 @@ packages:
dependency: transitive
description:
name: path
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
url: "https://pub.dev"
source: hosted
version: "1.8.3"
version: "1.9.0"
pub_semver:
dependency: "direct main"
description:
Expand Down Expand Up @@ -185,13 +185,21 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.2"
web:
dependency: transitive
description:
name: web
sha256: edc8a9573dd8c5a83a183dae1af2b6fd4131377404706ca4e5420474784906fa
url: "https://pub.dev"
source: hosted
version: "0.4.0"
web_socket_channel:
dependency: "direct main"
description:
name: web_socket_channel
sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
sha256: "045ec2137c27bf1a32e6ffa0e734d532a6677bf9016a0d1a406c54e499ff945b"
url: "https://pub.dev"
source: hosted
version: "2.4.0"
version: "2.4.1"
sdks:
dart: ">=3.0.0 <4.0.0"
dart: ">=3.2.0 <4.0.0"

3 comments on commit 9c9dc40

@kgantchev
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @Rexios80

Thank you for utilizing FlyCI! We would love to get your feedback and add it to our case studies section. Are you open to sharing your feedback about FlyCI and getting your project highlighted in our case studies section?

@Rexios80
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That would be awesome!

@kgantchev
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fantastic! Here are the questions for the case study (I've filled out the first one based on the README but feel free to modify it):

  • What does your project do, and who is it for?
    hds_desktop is a desktop application designed for users of the HDS system, offering a localized solution for integrating an overlay and a watch, primarily catering to those who seek or necessitate a local connection over cloud-based alternatives. It supports overlays via WebSocket and watches through REST connections, ensuring versatile and reliable interfacing. The application is tailored for technically adept individuals or entities, such as IT professionals or tech enthusiasts, who utilize such systems for data monitoring or real-time information displays, providing detailed setup instructions for Windows, MacOS, and Linux, alongside customization options like port configuration, emphasizing its commitment to user-centric flexibility and support.

  • What motivated your choice to use FlyCI's MacOS runners, and what key benefits have you observed? (Performance, compatibility, etc.)

  • What improvements have you noticed since integrating FlyCI's MacOS runners?
    (e.g., performance enhancements, reduced build times, developer productivity, cost savings)

  • Would you recommend any best practices for using MacOS runners?

Please sign in to comment.