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 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 Buildx uses: docker/setup-buildx-action@v2 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@v3.0.1 with: push: true env: REGISTRY_USER: localhost:5000/frappe - name: Setup Python uses: actions/setup-python@v4 with: python-version: "3.10" - 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@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Push if: ${{ inputs.push }} uses: docker/bake-action@v3.0.1 with: push: true