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

[HOLD for payment 2023-09-20] [$1250] Cache Pods to speed up iOS deploys #18623

Closed
roryabraham opened this issue May 9, 2023 · 84 comments
Closed
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 External Added to denote the issue can be worked on by a contributor NewFeature Something to build that is a new item.

Comments

@roryabraham
Copy link
Contributor

roryabraham commented May 9, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Problem

Our slowest platform to deploy, by far, is iOS. Part of the reason for that is because we do a fresh install of all our pods on every deploy, which can take up to 12 minutes. This is a problem because it slows our release cycle, particularly when we want to cherry-pick fixes to our staging environment.

Solution

Use https://github.com/actions/cache to cache our cocoapods and hopefully speed up the iOS deploy. Even a 5 minute improvement would pay dividends in the long run.

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~010c613f2c1b3960d0
  • Upwork Job ID: 1655741689607213056
  • Last Price Increase: 2023-09-10
@roryabraham roryabraham added External Added to denote the issue can be worked on by a contributor Weekly KSv2 NewFeature Something to build that is a new item. labels May 9, 2023
@roryabraham roryabraham self-assigned this May 9, 2023
@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

Job added to Upwork: https://www.upwork.com/jobs/~010c613f2c1b3960d0

@melvin-bot melvin-bot bot changed the title Cache Pods to speed up iOS deploys [$1000] Cache Pods to speed up iOS deploys May 9, 2023
@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

Triggered auto assignment to @greg-schroeder (External), see https://stackoverflow.com/c/expensify/questions/8582 for more details.

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels May 9, 2023
@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

Triggered auto assignment to Contributor-plus team member for initial proposal review - @mananjadhav (External)

@melvin-bot melvin-bot bot added the Help Wanted Apply this label when an issue is open to proposals by contributors label May 9, 2023
@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

Current assignee @roryabraham is eligible for the External assigner, not assigning anyone new.

@roryabraham
Copy link
Contributor Author

I'm not sure why we got both @zanyrenney and @greg-schroeder assigned here. Going to give it to unassign @greg-schroeder since @zanyrenney was assigned first.

@nbhargava
Copy link
Contributor

Proposal

We're going to use the actions/cache action as mentioned in the original ticket and hash the existing Podfile in order to determine whether we can re-use the existing cache or whether we have to do a fresh install. We'll update App/.github/workflows/testBuild.yml to include something that looks like:

jobs:
  [...]
  iOS:
    steps:
    - [...]
    - uses: actions/cache@v2
      with:
        path: ios/Pods
        key: ${{ runner.os }}-pods-${{ hashFiles('**/Podfile.lock') }}
        restore-keys: |
          ${{ runner.os }}-pods-
    - name: Install cocoapods
      [...]

It may require a bit of fiddling to get the exact invocation right, but this should ensure that we have a cached set of Pods that we can recreate from when possible.

We should be able to test this pretty easily within the context of a single PR by issuing two subsequent builds. We should see a marked speed up in the second build after we issue the first one due to a cache hit.

@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

📣 @nbhargava! 📣
Hey, it seems we don’t have your contributor details yet! You'll only have to do this once, and this is how we'll hire you on Upwork.
Please follow these steps:

  1. Get the email address used to login to your Expensify account. If you don't already have an Expensify account, create one here. If you have multiple accounts (e.g. one for testing), please use your main account email.
  2. Get the link to your Upwork profile. It's necessary because we only pay via Upwork. You can access it by logging in, and then clicking on your name. It'll look like this. If you don't already have an account, sign up for one here.
  3. Copy the format below and paste it in a comment on this issue. Replace the placeholder text with your actual details.
    Screen Shot 2022-11-16 at 4 42 54 PM
    Format:
Contributor details
Your Expensify account email: <REPLACE EMAIL HERE>
Upwork Profile Link: <REPLACE LINK HERE>

@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

✅ Contributor details stored successfully. Thank you for contributing to Expensify!

@mananjadhav
Copy link
Collaborator

I think @nbhargava's proposal here is good enough.

@roryabraham All yours.

@melvin-bot melvin-bot bot removed the Help Wanted Apply this label when an issue is open to proposals by contributors label May 9, 2023
@melvin-bot
Copy link

melvin-bot bot commented May 9, 2023

📣 @nbhargava You have been assigned to this job by @roryabraham!
Please apply to this job in Upwork and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑‍💻
Keep in mind: Code of Conduct | Contributing 📖

@nbhargava
Copy link
Contributor

Just submitted on Upwork -- hoping to get this in by Friday EOD.

@nbhargava nbhargava mentioned this issue May 9, 2023
57 tasks
@melvin-bot melvin-bot bot added the Reviewing Has a PR in review label May 9, 2023
@nbhargava
Copy link
Contributor

Hi all -- I still have not been granted the job on Upwork. I would love to get this in within the 3 business day timeline to be eligible for the bonus (and still believe I can do so) but am not going to continue working on this until I get some clarity in here in case I'm misunderstanding the process.

Thanks!

@myrs
Copy link
Contributor

myrs commented Sep 6, 2023

Perfect! Thank you, I will hand in the PR this Friday.

@melvin-bot melvin-bot bot added Reviewing Has a PR in review Weekly KSv2 and removed Weekly KSv2 labels Sep 10, 2023
@myrs
Copy link
Contributor

myrs commented Sep 10, 2023

Hi @roryabraham and @mananjadhav, I've created the PR 🙂

I have also included the update to verifyPodfile.sh as suggested by @roryabraham here. If I understand correctly, including this update the bounty would be $1250.

Looking forward to your review!

@roryabraham roryabraham changed the title [$1000] Cache Pods to speed up iOS deploys [$1250] Cache Pods to speed up iOS deploys Sep 10, 2023
@melvin-bot
Copy link

melvin-bot bot commented Sep 10, 2023

Upwork job price has been updated to $1250

@melvin-bot
Copy link

melvin-bot bot commented Sep 11, 2023

Based on my calculations, the pull request did not get merged within 3 working days of assignment. Please, check out my computations here:

  • when @myrs got assigned: 2023-09-04 15:11:13 Z
  • when the PR got merged: 2023-09-11 09:22:30 UTC
  • days elapsed: 4

On to the next one 🚀

@roryabraham
Copy link
Contributor Author

PR was merged without C+ review, removing @mananjadhav. Thanks everyone!

@myrs
Copy link
Contributor

myrs commented Sep 12, 2023

@zanyrenney could you please help me with Upwork job, it still appears with the status "This job is no longer available". As far as I understand, I need to get assigned to this job in order to receive the payment. Thank you!

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Sep 13, 2023
@melvin-bot melvin-bot bot changed the title [$1250] Cache Pods to speed up iOS deploys [HOLD for payment 2023-09-20] [$1250] Cache Pods to speed up iOS deploys Sep 13, 2023
@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Sep 13, 2023
@melvin-bot
Copy link

melvin-bot bot commented Sep 13, 2023

Reviewing label has been removed, please complete the "BugZero Checklist".

@melvin-bot
Copy link

melvin-bot bot commented Sep 13, 2023

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.3.68-17 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2023-09-20. 🎊

After the hold period is over and BZ checklist items are completed, please complete any of the applicable payments for this issue, and check them off once done.

  • External issue reporter
  • Contributor that fixed the issue
  • Contributor+ that helped on the issue and/or PR

For reference, here are some details about the assignees on this issue:

As a reminder, here are the bonuses/penalties that should be applied for any External issue:

  • Merged PR within 3 business days of assignment - 50% bonus
  • Merged PR more than 9 business days after assignment - 50% penalty

@melvin-bot melvin-bot bot added Daily KSv2 and removed Weekly KSv2 labels Sep 19, 2023
@myrs
Copy link
Contributor

myrs commented Sep 20, 2023

@zanyrenney @roryabraham hi! Do you still need any information/actions from me to complete the payment? Thank you!

@zanyrenney
Copy link
Contributor

for some reason the job is closed, i'll make another.

@zanyrenney
Copy link
Contributor

Can't find you on upwork under

Misha Yaroshevskiy or Myrs. @myrs can you share your details so i can payout?

@zanyrenney
Copy link
Contributor

@myrs
Copy link
Contributor

myrs commented Sep 21, 2023

Hi @zanyrenney , just submitted my application to the job

@zanyrenney
Copy link
Contributor

Offer sent, please accept for payout @myrs

@zanyrenney
Copy link
Contributor

Payment summary:

  • contributor @myrs - $1250
  • contributor plus - merged withuot C+ review
  • issue reporter - N/A

@zanyrenney
Copy link
Contributor

paid out and contract ended. thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Daily KSv2 External Added to denote the issue can be worked on by a contributor NewFeature Something to build that is a new item.
Projects
None yet
Development

No branches or pull requests

7 participants