OpenCPN/plugins

New Circleci Android Docker images - current being deprecated.

Closed this issue · 9 comments

Legacy Convenience Image Deprecation

...designed to be faster, more efficient, and most importantly, more reliable. You can learn more about all of the features on our blog post 933. As we begin to deprecate the legacy images, this document provides information on the migration process.

All legacy images have a Docker namespace of circleci, while next-gen images have a Docker namespace of cimg. For example, migrating from the legacy Ruby or Python image to the respective next-gen image can be done as follows:

circleci/ruby:2.3.0 → cimg/ruby:2.3.0
circleci/python:3.8.4 → cimg/python:3.8.4

Images available now

https://circleci.com/developer/images

At the top of the list there is:

cimg/android | An Android Docker image built to run on CircleCI that contains API levels, build & platform tools, and the NDK variant images. | 2023.08

cimg/android

An Android Docker image built to run on CircleCI that contains API levels, build & platform tools, and the NDK variant images.

2023.08

@bdbcat Shouldn't we be using this to build Android now?

We currently are using a docker image

    build-android-arm64:
        docker:
        - image: cimg/android:2021.10.2-ndk
        resource_class: large
        environment:
        - OCPN_TARGET:  android-arm64
        - DEPLOY_USE_ORB: true

and

    build-android-armhf:
        docker:
        - image: cimg/android:2021.10.2-ndk
        resource_class: large
        environment:
        - OCPN_TARGET:  android-armhf

Whoops I just saw this page for more details
https://circleci.com/developer/images/image/cimg/android

jobs:
  build:
    docker:
      - image: cimg/android:2023.08
    steps:
      - checkout
      - run: ./gradlew androidDependencies
      - run: ./gradlew lint test

In the above example, the CircleCI Android Docker image is used for the primary container. More specifically, the tag 2023.08 is used meaning the August 2021 snapshot of the image is used. You can now build and test Android projects within the steps for this job.

Additionally, you can use the Android Orb to access the Docker executor and configure your image in a standardized way.

While it is possible to use this image for emulation, it's highly recommended to use the machine image instead.

Here is the page for using the machine image, which I they recommend.

https://circleci.com/developer/machine/image/android

Do you want me to just start using testplugin FE2 now, or wait?

I think the android config.yml complies with the modern requirements, so I am just going to start using TP

leamas commented

This should actually have been filed against both the TP and shipdriver templates. Shipdriver issue here

@bdbcat @leamas Should this be closed now?

leamas commented

The shipdriver issue is closed. No idea about TP.

There is an issue in TP Testplugin not done yet. Closing.

leamas commented

You see how these things ends up. Issues which requires changes in the actual plugin code needs to be filed against TP and/or shipdriver, usually both.

The rule of thumb when determining where to file an a issue is "what does need to be modified". If there is a need to modify something in opencpn/plugins, this is the place to file it.

OTOH, if there is a need to modify the templates, the templates are the place to file bugs.