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

Introduce Continuous Deployment #544

Merged
merged 2 commits into from
Nov 22, 2023
Merged

Introduce Continuous Deployment #544

merged 2 commits into from
Nov 22, 2023

Conversation

rgaudin
Copy link
Member

@rgaudin rgaudin commented Nov 22, 2023

Automatically building and deploying in Github Actions for Nightlies and Releases.

Triggered by the following:

  • every day at 01:32am (nightly mode)
  • manualy (nightly mode)
  • on release publication (release mode)

This workflow makes extensive use of secrets with no additional safe-guard, given:

  • schedule (nightly) runs only off main branch.
  • workflow_dispatch (manual) can run on any in-repo branch (but uses the workflow from main)
  • Release publication requires push access to repo.

There are thus two modes: Release and Nightly (also used on manual dispatch). The mode sets the VERSION either to the YYYY-MM-DD date for nightly or the tag-name for the release.

It has four targets: macOS dmg, macOS app-store, iOS ipa and iOS app-store

  • macOS dmg: universal notarized macOS App in a dmg uploaded to Kiwix-$VERSION.dmg
  • macOS app-store: universal notarized macOS App uploaded to the App Store.
  • iOS ipa: iOS App uploaded to Kiwix-$VERSION.ipa
  • iOS app-store: iOS App uploaded to the App Store

Code Signing is automatic (xcode decides which one to use based on availability). We use Apple Distribution one for the app-store targets. IPA uses Apple Development and dmg uses Developer ID.

⚠️ This allows updates CI workflow to make use of the shared xcbuild action

Fixes #492

@rgaudin rgaudin self-assigned this Nov 22, 2023
Automatically building and deploying in Github Actions for Nightlies and Releases.

Triggered by the following:

- every day at 01:32am (nightly mode)
- manualy (nightly mode)
- on release publication (release mode)

This workflow makes extensive use of secrets with no additional safe-guard, given:

- `schedule` (nightly) runs only off `main` branch.
- `workflow_dispatch` (manual) can run on any in-repo branch (but uses the workflow from `main`)
- Release publication requires push access to repo.

There are thus two *modes*: Release and Nightly (also used on manual dispatch).
The mode sets the `VERSION` either to the YYYY-MM-DD date for nightly or the tag-name for the release.

It has four *targets*: `macOS dmg`, `macOS app-store`, `iOS ipa` and `iOS app-store`

- **macOS dmg**: universal notarized macOS App in a dmg uploaded to `Kiwix-$VERSION.dmg`
- **macOS app-store**: universal notarized macOS App uploaded to the App Store.
- **iOS ipa**: iOS App uploaded to `Kiwix-$VERSION.ipa`
- **iOS app-store**: iOS App uploaded to the App Store

Code Signing is *automatic* (xcode decides which one to use based on availability).
We use Apple Distribution one for the app-store targets. IPA uses Apple Development
and dmg uses Developer ID.

⚠️ This allows updates CI workflow to make use of the shared xcbuild action
kelson42
kelson42 previously approved these changes Nov 22, 2023
Copy link
Contributor

@kelson42 kelson42 left a comment

Choose a reason for hiding this comment

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

Thank you very much for this very essential piece of software

@kelson42
Copy link
Contributor

@rgaudin Does something has changed in the CI?! The iOS Ci does not pass anymore (after my rebase)?!

@rgaudin
Copy link
Member Author

rgaudin commented Nov 22, 2023

you merged broken code

@kelson42
Copy link
Contributor

@rgaudin Maybe but I don't get why https://github.com/kiwix/apple/actions/runs/6961075788 passes then!
@tvision251 This was your PR. Do you understand why it does not pass here?

@rgaudin
Copy link
Member Author

rgaudin commented Nov 22, 2023

Ah you got me! Indeed I fixed the CI which was previously always building for macOS and never for iOS.

@kelson42 kelson42 merged commit eac6b3d into main Nov 22, 2023
3 checks passed
@kelson42 kelson42 deleted the cd branch November 22, 2023 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Introduce Continous Deployment
3 participants