boxes/.forgejo/workflows/publish.yaml
aleidk 663f363609
All checks were successful
Publish image / Generate job matrices (push) Successful in 6s
Publish image / create-docker-images (map[name:devbox path:boxes/devbox]) (push) Successful in 3m38s
feat: change devbox to void linux
2024-11-08 15:26:18 -03:00

73 lines
2.4 KiB
YAML

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 }}
timestamp: ${{ steps.timestamp.outputs.timestamp }}
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: Get timestamp
id: timestamp
run: |
echo "timestamp=$(date +'%Y-%m-%d_%H-%M')" >> $GITHUB_OUTPUT
- 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:
- path: "boxes/devbox"
name: "devbox"
if: contains(needs.generate-matrix.outputs.boxes, matrix.box.path)
steps:
- name: Print variables
run: |
echo 'Building image in context "${{ matrix.box.path }}" as tag "${{matrix.box.name}}:${{ needs.generate-matrix.outputs.timestamp }}"'
- 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
push: true
context: "{{defaultContext}}:${{ matrix.box.path }}"
tags: |
git.alecodes.page/alecodes/${{ matrix.box.name }}:latest
git.alecodes.page/alecodes/${{matrix.box.name}}:${{ needs.generate-matrix.outputs.timestamp }}