name: Build Container Image on: workflow_dispatch: push: branches: - main tags: - "*" jobs: build: name: Build runs-on: ubuntu-latest permissions: packages: write steps: - name: Checkout Entire Repository uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set Branch run: | echo '[{"url": "https://github.com/frappe/telephony","branch": "develop"},{"url": "https://github.com/ikhsanddy/opendesk","branch": "main"}]' > apps.json echo "FRAPPE_BRANCH=develop" >> $GITHUB_ENV - name: Set Image Tag run: | echo "IMAGE_TAG=stable" >> $GITHUB_ENV - uses: actions/checkout@v4 with: repository: frappe/frappe_docker path: builds - name: Build uses: docker/build-push-action@v6 with: load: true context: builds file: builds/images/layered/Containerfile tags: > ghcr.io/${{ github.repository }}:${{ github.ref_name }}, ghcr.io/${{ github.repository }}:${{ env.IMAGE_TAG }} build-args: | "FRAPPE_BRANCH=${{ env.FRAPPE_BRANCH }}" secret-files: | apps_json=apps.json - name: Verify apps are installed run: | apps=$(docker run --rm --entrypoint ls ghcr.io/${{ github.repository }}:${{ env.IMAGE_TAG }} apps) echo "$apps" grep -qx opendesk <<< "$apps" && grep -qx telephony <<< "$apps" - name: Push run: docker push --all-tags ghcr.io/${{ github.repository }}