Commit Graph

37 Commits

Author SHA1 Message Date
Davide c0dc2181e3
Complete CI/CD release workflow (#958)
Import current metadata and screenshots.

Fixes #647
2024-11-27 19:10:23 +01:00
Davide 2d698cabfe
Reuse modifier for navigation stacks with close button (#861)
Refactored:

- iOS
  - VPNProviderServerView
- macOS
  - AboutView
  - ProfileSplitView
- Both
  - ProfileCoordinator
  - VPNProviderServerCoordinator
2024-11-13 19:17:00 +01:00
Davide c5047533b5
Run tests before building (#856)
Workflow from #855 was incorrect, as it was running tests for each build
in the matrix. Do it only once before the matrix.

Fixes #717
2024-11-12 18:46:21 +01:00
Davide 54f4364c33
Split test jobs (#855)
Move Core Data tests out of the Library package so that we can still use
the more efficient `swift test` for most tests.

Create a PassepartoutTests target only for tests that require
`xcodebuild`, like Core Data tests.

Eventually:

- PRs only run SwiftPM tests
- Releases run ALL tests with `scan` before `gym`
2024-11-12 18:35:44 +01:00
Davide fccba7d8cb
Change CI timeouts
- Release -> 20
- Test -> 10
2024-11-07 01:49:07 +01:00
Davide 237277d4db
Do some refactoring in AppUI targets (#789)
- Refactor AppUI initialization in all platforms (sort of template
method pattern)
- Make AppMenu specific to macOS by wrapping it into a folder for
consistency
- Add SizeClassProviding for repeated checks on hsClass/vsClass

Fixes #659
2024-10-31 10:02:21 +01:00
Davide De Rosa b7e8e15d1b
Bump version 2024-09-24 17:56:27 +02:00
Davide bce2694694
Fix lookup of pilot metadata (#601)
- [x] Fetch app version/build without agvtool, unavailable on
ubuntu-latest
- [x] Move TestFlight preface to a repository variable
- [x] Move TestFlight URL to README instead
2024-09-24 17:51:01 +02:00
Davide a665670cf7
Add job for public beta deployment (#600)
Closes #599
2024-09-24 11:17:52 +02:00
Davide 6cc86e8668
Import v3 code (#597)
Closes #565
2024-09-23 15:02:26 +02:00
Davide De Rosa 444b51317c
Use stable Xcode 2024-09-22 16:16:19 +02:00
Davide De Rosa a806275d0b
Try fix keychain in CI 2024-09-22 16:02:33 +02:00
Davide De Rosa bf4dc6c920
Add tvOS build to beta/review CI jobs (#453)
_Should_ work out of the box.

Closes #450
2024-01-07 12:17:46 +01:00
Davide De Rosa f13b4d0768
Upload tvOS build to TestFlight (#449)
Update the release workflow by adding tvOS to the matrix. The build job
should work, not 100% sure about pilot.
2024-01-06 10:55:44 +01:00
Davide De Rosa b23e2b974e
Lock gems platform 2024-01-06 00:10:11 +01:00
Davide De Rosa 31005c84ba
Add tvOS to matrix 2024-01-06 00:06:15 +01:00
Davide De Rosa 5c5697762b
Add minimal TV app
Closes #315
2023-12-31 01:21:38 +01:00
Davide De Rosa 2357324a74
Update some metadata (#331)
A bit of everything.

- Use GitHub handles in CHANGELOG
- Mention XOR patch in README and keywords
- Update gems
- Add GitHub issue template
- Fix missing script in release workflow
2023-07-17 21:46:32 +02:00
Davide De Rosa 773d5705f1 Upgrade GitHub Actions 2023-07-06 18:46:01 +01:00
Davide De Rosa f0e3b2fa9c
Improve release workflow (#326) 2023-07-05 18:07:47 +02:00
Davide De Rosa b1114514f0 Fix missing identity for beta tag 2022-11-01 19:00:26 +01:00
Davide De Rosa dc76776fe8 Annotate public beta tags 2022-10-31 14:05:15 +01:00
Davide De Rosa 7ef32882f1
Freeze release workflow (#242)
* Freeze release workflow

- Do not pull anything from master

- Do not push release commit to master

- Only push created version tag

* Refine scripts to start new version

1. Cherry-pick hotfixes from released version

2. Bump version to new version

Normally, 1 is only made of the release commit updating CHANGELOG
with the release date.

However, if a release branch was needed to apply hotfixes to the
latest release, cherry picking will account for the whole release
branch (i.e. multiple commits).

* Ignore more paths for unit testing
2022-10-30 12:56:49 +01:00
Davide De Rosa 9962401d74 Fix some issues in scripts
- Always use bash for consistent script behavior

- Replace deprecated set-output in GitHub workflows
2022-10-17 13:39:54 +02:00
Davide De Rosa 3a2ff219b6 Restore lost job need
Added in 3b5d5db, lost in 4aba5f4.
2022-09-30 22:01:01 +02:00
Davide De Rosa c581042b10 Enable macOS public beta workflow 2022-07-17 14:48:14 +02:00
Davide De Rosa 0ff831f021 Fix target in test workflow 2022-06-25 20:27:24 +02:00
Davide De Rosa 930ff65193 Revert "Enable macOS in "Public Beta" job"
This reverts commit 6bb46ef8b4.
2022-05-21 19:15:37 +02:00
Davide De Rosa 6bb46ef8b4 Enable macOS in "Public Beta" job 2022-05-18 11:17:39 +02:00
Davide De Rosa cdf4010f09 Pass GITHUB_TOKEN to workflows env
Workflows failing to push changes. Could this fix it?
2022-05-17 23:16:52 +02:00
Davide De Rosa 115f54edbd Bump CI to macOS 12
Features Xcode 13.3.1, consistent with local development.

Maybe works around accent color bug.
2022-05-17 16:42:37 +02:00
Davide De Rosa 1532e8808b [ci skip] Address CI and ASC validation issues
- Skip tests until fixed wg-go issue

- Add golang step

- Set "Apple Development" at project level

- Set Catalyst platform for gym

- Drop TARGET env variable clashing with WireGuardKit

- Disable SwiftGen script phase

- Fix TunnelKit segfault on archive

- Xcode 13.2.1 compatibility
    Fix some issues with @MainActor
    Use #available instead of #unavailable

- Raise timeout from 10 to 15 minutes

- Update beta description

- Tunnel bundle ids cannot have periods

- CFBundleDisplayName required in tunnels
2022-04-13 10:00:29 +02:00
Davide De Rosa 4aba5f46aa Rewrite app in SwiftUI 2022-04-12 15:12:45 +02:00
Davide De Rosa 3b5d5db598 Add explicit need to reach job outputs 2022-02-15 09:08:35 +01:00
Davide De Rosa ab2aa03c62 Optimize release workflow
- Enforce 1h keychain lock timeout

- Disable xcpretty again for better debugging

- Drop redundant names of boilerplate actions

- Limit scope of release env variables

- Split release pull and tagging

- Generate markdown release notes in standalone script
2021-12-08 16:10:27 +01:00
Davide De Rosa ca7de6d6ae Unlock keychain after creation
Might be the reason behind build hanging up in CI, arguably
waiting for a keychain password prompt.

Now, the issue never happened while prepping #207.

When testing the PR though, the testing step was omitted. This
drastically reduced the time between keychain creation and the
build to reach the codesigning phase. By restoring tests in
between, the increase in time would likely incur in keychain
auto-locking up.

- Convert action to keychain creation only

- Restore xcpretty as irrelevant (2a5c231)
2021-12-04 11:52:59 +01:00
Davide De Rosa 2a5c231d3d
Polish release workflow (#207)
* Do run tests in beta

- Test and build app in same lane
- Run tests with swift directly
- Set timeout on build only
- Set GYM_OUTPUT_DIRECTORY inline
- Fix bad build number, broken in db075eb
- Ignore updates to CHANGELOG for testing
- Drop unnecessary exports
- Drop unnecessary test env
- Drop unused PLATFORM .env.* variable

* Work around gym issues in CI

- Set custom build paths for proper clean-up
- Disable xcpretty (seems to hang job)

* Add descriptive names to workflow

- Rename beta to release
- Add job names

* Optimize release workflow

- Use a matrix for multiplatform build
- Only preinstall platform-specific certificates
- Output app version/build early for job reuse
- Do not depend app review on public beta release
- Pull latest commits before pushing/tagging

In release, ci/* scripts require Ruby. Make version an argument
of the commit-release.sh script to fix dependency.

* Import secret to notify external testers or not

* [ci skip] Add CHANGELOG preface in local scripts

* [ci skip] Update links to release via CI
2021-12-03 15:31:19 +01:00