From 334b2fffc721fa4e92fdb96ee0ec5463e6aab5a7 Mon Sep 17 00:00:00 2001 From: Philipp Hofer Date: Sun, 6 Apr 2025 13:19:13 +0200 Subject: [PATCH] try ci --- .gitea/workflows/docker-build.yml | 57 +++++++++++++++++++++++++++++++ {rust => rust-latest}/Dockerfile | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .gitea/workflows/docker-build.yml rename {rust => rust-latest}/Dockerfile (97%) diff --git a/.gitea/workflows/docker-build.yml b/.gitea/workflows/docker-build.yml new file mode 100644 index 0000000..7832054 --- /dev/null +++ b/.gitea/workflows/docker-build.yml @@ -0,0 +1,57 @@ +name: Build and Push Docker Images + +on: + push: + branches: [ main ] + paths: + - '*/Dockerfile' + - '.gitea/workflows/docker-build.yml' + +jobs: + detect-changes: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.set-matrix.outputs.matrix }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Detect changed directories + id: set-matrix + run: | + CHANGED_DIRS=$(git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep 'Dockerfile' | xargs -L1 dirname | sort | uniq | jq -R -s -c 'split("\n") | map(select(length > 0))') + echo "matrix=${CHANGED_DIRS}" >> $GITHUB_OUTPUT + + build: + needs: detect-changes + if: ${{ needs.detect-changes.outputs.matrix != '[]' && needs.detect-changes.outputs.matrix != '' }} + runs-on: ubuntu-latest + strategy: + matrix: + image_dir: ${{ fromJson(needs.detect-changes.outputs.matrix) }} + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Login to Gitea Container Registry + uses: docker/login-action@v2 + with: + registry: git.hofer.link + username: ${{ secrets.GITEA_USERNAME }} + password: ${{ secrets.GITEA_PASSWORD }} + + - name: Extract image name from directory + id: image-name + run: | + IMAGE_NAME=$(basename ${{ matrix.image_dir }}) + echo "name=${IMAGE_NAME}" >> $GITHUB_OUTPUT + + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: ${{ matrix.image_dir }} + push: true + tags: git.hofer.link/philipp/ci-images:${{ steps.image-name.outputs.name }} + diff --git a/rust/Dockerfile b/rust-latest/Dockerfile similarity index 97% rename from rust/Dockerfile rename to rust-latest/Dockerfile index 80b4b3b..da4b880 100644 --- a/rust/Dockerfile +++ b/rust-latest/Dockerfile @@ -5,7 +5,7 @@ # 2. Tag the image: `docker tag git.hofer.link/philipp/ci-images:rust-latest` # 3. Push the image: `docker push git.hofer.link/philipp/ci-images:rust-latest` -FROM rust:1.85.1 +FROM rust:1.86 RUN apt-get update && apt-get install -y sqlite3