Using Semaphore's android image as a CI/CD environment#

The example uses our public demo project:

version: v1.0
name: First pipeline example
agent:
  machine:
    type: a1-standard-4
    os_image: macos-xcode14
blocks:
  - name: Cache deps
    task:
      env_vars:
        - name: APP_ENV
          value: prod
      jobs:
        - name: Get deps
          commands:
            - checkout
            - flutter pub get
            - cache store flutter-packages .packages
    dependencies: []
  - name: Test IOS
    task:
      jobs:
        - name: Unit tests
          commands:
            - flutter test
        - name: Code analyse
          commands:
            - flutter analyze
      prologue:
        commands:
          - checkout
          - cache restore flutter-packages
    dependencies:
      - Cache deps
  - name: Test Android
    dependencies:
      - Cache deps
    task:
      prologue:
        commands:
          - checkout
          - flutter pub get
      agent:
        machine:
          type: e1-standard-2
          os_image: ubuntu1804
        containers:
          - name: main
            image: 'registry.semaphoreci.com/android:29-flutter'
      jobs:
        - name: Unit Tests
          commands:
            - flutter test
        - name: Code analyse
          commands:
            - flutter analyze

Semaphore convenience images redirection

Due to the introduction of Docker Hub rate limits, if you are using a Docker-based CI/CD environment in combination with convenience images, Semaphore will automatically redirect any pulls from the semaphoreci Docker Hub repository to the Semaphore Container Registry.