name: Publish image on: push: paths: - 'boxes/**' workflow_dispatch: jobs: generate-matrix: name: Generate job matrices runs-on: host outputs: boxes: ${{ steps.changed-files.outputs.all_changed_files }} boxes-count: ${{ steps.changed-files.outputs.all_changed_files_count }} if: false steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: List changed files id: changed-files uses: tj-actions/changed-files@v45.0.3 with: matrix: true diff_relative: true dir_names: true dir_names_exclude_current_dir: true dir_names_max_depth: 2 files: boxes/** - name: Output changes run: | echo 'Files changed: ${{ steps.changed-files.outputs.all_changed_files_count }}' echo 'List: ${{ steps.changed-files.outputs.all_changed_files }}' create-docker-images: needs: generate-matrix runs-on: host strategy: matrix: # box: ${{ needs.generate-matrix.outputs.boxes }} FIXME: this doesn't work yet in forgejo-runner box: - "boxes/devbox" max-parallel: 4 fail-fast: false steps: - name: Print variables run: | echo 'Building image in context: ${{ matrix.box }}' - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Login to Docker Hub uses: docker/login-action@v3 with: registry: git.alecodes.page username: ${{ vars.CONTAINER_REGISTRY_USER }} password: ${{ secrets.CONTAINER_REGISTRY_TOKEN }} - name: Build and push uses: docker/build-push-action@v6 with: platforms: linux/amd64,linux/arm64 push: true context: "{{defaultContext}}:${{ matrix.box }}" tags: | git.alecodes.page/alecodes/devbox:latest