name: Build Android Emulator Images on: push: branches: [main, master] workflow_dispatch: inputs: android_version: description: 'Android API version (e.g., 30, 31, 32)' required: false default: '30' env: REGISTRY: images.caffeinetux.com PROJECT: library DOCKER_HOST: tcp://localhost:2375 jobs: build: runs-on: ubuntu-latest strategy: matrix: version: [android-30] fail-fast: false steps: - name: Checkout uses: actions/checkout@v4 - name: Wait for Docker run: | for i in $(seq 1 30); do if docker info >/dev/null 2>&1; then echo "Docker is ready" break fi echo "Waiting for Docker... ($i/30)" sleep 2 done docker info - name: Login to Harbor run: | echo "${{ secrets.HARBOR_PASSWORD }}" | docker login ${{ env.REGISTRY }} -u "${{ secrets.HARBOR_USERNAME }}" --password-stdin - name: Generate build files run: make generate - name: Build and push working-directory: build/${{ matrix.version }} run: | # Build the image docker build \ --build-arg VCS_REF=${{ github.sha }} \ --build-arg IMAGE_VERSION=${{ github.run_number }} \ -t ${{ env.REGISTRY }}/${{ env.PROJECT }}/docker-emulator-${{ matrix.version }}:latest \ -t ${{ env.REGISTRY }}/${{ env.PROJECT }}/docker-emulator-${{ matrix.version }}:${{ github.sha }} \ . # Push tags docker push ${{ env.REGISTRY }}/${{ env.PROJECT }}/docker-emulator-${{ matrix.version }}:latest docker push ${{ env.REGISTRY }}/${{ env.PROJECT }}/docker-emulator-${{ matrix.version }}:${{ github.sha }}