name: Fleetbase Docker Images on: push: tags: - 'v*' workflow_dispatch: inputs: branch: description: 'Branch to build from' required: false default: 'main' version: description: 'Image version tag (e.g., v0.7.1-beta)' required: false jobs: docker-release: name: Build and Push Docker Images runs-on: ubuntu-latest env: REGISTRY: fleetbase VERSION: ${{ github.event.inputs.version || (github.ref_type == 'tag' && startsWith(github.ref_name, 'v') && github.ref_name) || 'manual' }} steps: - name: Checkout Repo uses: actions/checkout@v3 with: ref: ${{ github.event.inputs.branch || github.ref_name }} submodules: recursive - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Log in to Docker Hub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Build and Push Console & API Images uses: docker/bake-action@v2 with: push: true targets: | fleetbase-console fleetbase-api files: | ./docker-bake.hcl aws-marketplace-ecr-release: name: Build and Push to AWS ECR runs-on: ubuntu-latest needs: docker-release env: REGISTRY: ${{ secrets.AWS_ECR_REGISTRY }}/fleetbase VERSION: ${{ github.event.inputs.version || (github.ref_type == 'tag' && startsWith(github.ref_name, 'v') && github.ref_name) || 'manual' }} steps: - name: Checkout Repo uses: actions/checkout@v3 with: ref: ${{ github.event.inputs.branch || github.ref_name }} submodules: recursive - name: Configure AWS Credentials uses: aws-actions/configure-aws-credentials@v3 with: aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} aws-region: ${{ secrets.AWS_REGION }} - name: Manually log in to Amazon ECR (Marketplace-style) run: | aws ecr get-login-password --region ${{ secrets.AWS_ECR_REGION }} | \ docker login --username AWS --password-stdin ${{ secrets.AWS_ECR_REGISTRY }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Bake and Push to ECR uses: docker/bake-action@v2 with: push: true files: | ./docker-bake.hcl targets: | fleetbase-api fleetbase-console - name: Verify ECR Images run: | aws ecr describe-images \ --registry-id ${{ secrets.AWS_ECR_REGISTRY_ID }} \ --repository-name fleetbase/fleetbase-api \ --region ${{ secrets.AWS_ECR_REGION }} aws ecr describe-images \ --registry-id ${{ secrets.AWS_ECR_REGISTRY_ID }} \ --repository-name fleetbase/fleetbase-console \ --region ${{ secrets.AWS_ECR_REGION }}