Android Image Deprecations and EOL for 2024

Hello :wave:

We are deprecating the following Android images on CircleCI and will be removing them from our platform on Sept 30, 2024:

Tags:

  • android:202102-01
  • android:2021.12.1
  • android:2022.01.1
  • android:2022.03.1
  • android:2022.04.1
  • android:2022.06.1
  • android:2022.06.2
  • android:2022.07.1
  • android:2022.08.1
  • android:2022.09.1
  • android:2023.03.1
  • android:2023.04.1
  • android:2023.06.1
  • android:2023.07.1
  • android:2023.09.1
  • android:2023.11.1

Once an image is removed, the CircleCI jobs that use that image will fail with an error message - This job was rejected because the image is unavailable .

CircleCI will email impacted users with a list of projects that must be updated before the EOL date.

Why are these images being deprecated?

To ensure pipelines on CircleCI run with the highest level of reliability & security.

What do I need to do?

You will need to update your CircleCI config to use a valid Android image as per the tagging conventions in our Android Image Policy.

The recommended tags to use are as follows:

  • default - latest stable version and version if do not specify anything
  • edge - Development image of latest image

A couple examples:

Before:

 machine:
      image: android:202102-01 // any of the deprecated image tags above

After:

 machine:
      image: android:default
 machine:
      image: android:edge

What will happen after the Sept 30 EOL Date?

If you do not currently specify an image, your job will keep the same behavior, and use the default tag automatically.

Calling any of the deprecated image tag versions directly will cause your job to fail.

Brownout Schedule and EOL

We will be conducting brownouts for the above images on the following dates and times.

  • 25 March 2024
    • 07:00 UTC → 11:00 UTC
    • 13:00 UTC → 17:00 UTC
    • 20:00 UTC → 00:00 UTC
  • 25 June 2024
    • 01:00 UTC → 11:00 UTC
    • 13:00 UTC → 23:00 UTC
  • 18 September 2024
    • 00:00 UTC → 00:00 UTC (24 Hour)
  • 30 September 2024
    • Deprecated tags are removed and will be unavailable

During these times, all jobs calling these images will fail. Please update your configs as soon as possible to prevent any disruption to your pipelines.

The default tag is available for you to transition to as of writing and we highly recommend updating your config to avoid job failure during these brownouts. If you have already updated your tags, please disregard this email.

What’s Next?

Details on how we manage and maintain our Android images can be found here: Android Image Policy.

Feedback

If you have any questions, comments, or concerns, please post a reply in this thread and we will be happy to help!

Respectfully,
CircleCI Images Team

Are android machines affected?

I tried to remove the tag here but got this error:

    executor:
      name: android/android-machine
      resource-class: 2xlarge

Error calling executor: 'android/android-machine' Missing required argument(s): tag

The naming standard is documented here

cimg/android - CircleCI

Just to clarify, that document talks about cimg/android. My question is if android/android-machine is also affected by the deprecations.

Thank you!

My mistake.

Can you post more of your config file as android/android-machine works with the android orb and so context and arguments come from the orb setup.

Config file:

version: 2.1
orbs:
  android: circleci/android@2.4.0

jobs:
  build_dev_app:
    executor:
      name: android/android-machine
      resource-class: 2xlarge
      tag: 2022.09.1

Should we remove the tag argument?

OK, this is where we go down a rabbit hole.

I guess you are working from examples found on the ORB page here

Now what the docs on this page do not make clear at all is that “android/android-machine” is just a placeholder. The image name loaded is

image: android:<< parameters.tag >>

Where tag is a valid value from the list on the page I linked to. So “android/android-machine” which is just “android” shares the same tag list as “cimg/android” images.

I can run the following workflow without errors, I had to use a smaller resource class as I’m on the free plan and did get a warning about the image being deprecated.

version: 2.1
orbs:
  android: circleci/android@2.4.0

jobs:
  build_dev_app:
    executor:
      name: android/android-machine
      resource-class: large
      tag: 2022.09.1
    steps:
      - checkout            

workflows:
  build-and-test:
    jobs:
      - build_dev_app

The real problem is that the original post was made without considering the use of the ORB. So to use the ORB you set tag: to default or edge as in the following example

version: 2.1
orbs:
  android: circleci/android@2.4.0

jobs:
  build_dev_app:
    executor:
      name: android/android-machine
      resource-class: large
      tag: default
    steps:
      - checkout            

workflows:
  build-and-test:
    jobs:
      - build_dev_app
1 Like

Changing the tag to default or a newer (supported image tag), should allow you to still use the orb.

The issue is that the original post did not cover the configuration needed for the ORB and as the way that an executor is defined for the ORB is different to the way it is defined for a non ORB configuration it left things a little unclear.

I see, thank you for pointing this out.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.