name: Build on: workflow_call: inputs: repo: required: true type: string description: "'erpnext' or 'frappe'" version: required: true type: string description: "Major version, git tags should match 'v{version}.*'; or 'develop'" push: required: true type: boolean platforms: required: true type: string description: "list of target platforms" secrets: DOCKERHUB_USERNAME: required: true DOCKERHUB_TOKEN: required: true jobs: build: name: Build runs-on: ubuntu-latest services: registry: image: registry:2 ports: - 5000:5000 steps: - name: Checkout uses: actions/checkout@v3 - name: Setup QEMU uses: docker/setup-qemu-action@v1 with: image: tonistiigi/binfmt:latest platforms: all - name: Setup Buildx uses: docker/setup-buildx-action@v1 with: driver-opts: network=host - name: Get latest versions run: python3 ./.github/scripts/get_latest_tags.py --repo ${{ inputs.repo }} --version ${{ inputs.version }} - name: Build uses: docker/bake-action@v1.7.0 with: push: true env: REGISTRY_USER: localhost:5000/frappe - name: Setup Python uses: actions/setup-python@v3 with: python-version: 3.9 - name: Install Docker Compose v2 uses: ndeloof/install-compose-action@4a33bc31f327b8231c4f343f6fba704fedc0fa23 - name: Install dependencies run: | python -m venv venv venv/bin/pip install -r requirements-test.txt - name: Test run: venv/bin/pytest --color=yes - name: Login if: ${{ inputs.push }} uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Push if: ${{ inputs.push }} uses: docker/bake-action@v1.7.0 with: push: true set: "*.platform=${{ inputs.platforms }}"