6 Commits

Author SHA1 Message Date
96e5e7500b change directory into source path before creating restic backup
All checks were successful
Build and Release Docker Image / Build and Push amd64 (push) Successful in 15s
Build and Release Docker Image / Build and Push arm64 (push) Successful in 27s
Build and Release Docker Image / Create and Push Multi-Arch Manifest (push) Successful in 18s
2025-02-05 19:33:43 +01:00
94f7c56932 improve cronjob example with best practices 2025-02-05 19:18:23 +01:00
ba63df67c3 reformat readme
All checks were successful
Build and Release Docker Image / Build and Push amd64 (push) Successful in 22s
Build and Release Docker Image / Build and Push arm64 (push) Successful in 45s
Build and Release Docker Image / Create and Push Multi-Arch Manifest (push) Successful in 18s
2025-02-04 21:33:31 +01:00
2070e56db5 update alpine base image 2025-02-04 21:32:35 +01:00
3a058825db build step
All checks were successful
Build and Release Docker Image / Build and Push amd64 (push) Successful in 14s
Build and Release Docker Image / Build and Push arm64 (push) Successful in 27s
Build and Release Docker Image / Create and Push Multi-Arch Manifest (push) Successful in 18s
2025-02-04 21:21:36 +01:00
1f0df426be refactor script 2025-02-02 21:27:28 +01:00
4 changed files with 70 additions and 122 deletions

View File

@@ -1,111 +1,86 @@
name: CD name: Build and Release Docker Image
on: on:
push: push:
branches: branches:
- main - v2
env:
DOCKER_REGISTRY: gitea.t000-n.de
jobs: jobs:
check-changes: build_amd64:
name: Check changes name: Build and Push amd64
runs-on: ubuntu-latest runs-on: [ubuntu-latest, linux_amd64]
outputs:
changes: ${{ steps.filter.outputs.code }}
steps: steps:
- name: Checkout - name: Checkout repository
uses: actions/checkout@v5 uses: actions/checkout@v4
- name: Get changed files - name: Log in to registry
id: filter uses: docker/login-action@v3
uses: dorny/paths-filter@v3
with: with:
filters: | registry: gitea.t000-n.de
code: username: ${{ secrets.REGISTRY_USERNAME }}
- 'src/**'
- 'Dockerfile'
- 'gitea/workflows/**'
build_and_push:
name: Build and push
needs:
- check-changes
if: ${{ needs.check-changes.outputs.changes != '0' }}
strategy:
matrix:
arch:
- amd64
- arm64
runs-on:
- ubuntu-latest
- linux_${{ matrix.arch }}
steps:
- uses: actions/checkout@v5
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }} password: ${{ secrets.REGISTRY_PASSWORD }}
- id: meta
run: |
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}' | tr '[:upper:]' '[:lower:]') >> $GITHUB_OUTPUT
echo REPO_VERSION=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT
- uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/${{ matrix.arch }}
push: true
provenance: false
tags: |
${{ env.DOCKER_REGISTRY }}/t.behrendt/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }}-${{ matrix.arch }}
create_tag: - name: Build Docker image for amd64
name: Create tag
needs:
- check-changes
if: ${{ needs.check-changes.outputs.changes != '0' }}
runs-on: ubuntu-latest
outputs:
tag: ${{ steps.tag.outputs.new-tag }}
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: https://gitea.t000-n.de/t.behrendt/conventional-semantic-git-tag-increment@0.0.2
id: tag
with:
token: ${{ secrets.GITEA_TOKEN }}
- run: |
git tag ${{ steps.tag.outputs.new-tag }}
git push origin ${{ steps.tag.outputs.new-tag }}
- name: Set output
run: | run: |
echo "tag=${{ steps.tag.outputs.new-tag }}" >> $GITHUB_OUTPUT docker build \
--platform linux/amd64 \
-f Dockerfile \
-t gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-amd64 \
.
create_manifest: - name: Push Docker image for amd64
name: Create manifest
needs:
- build_and_push
- create_tag
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- id: meta
run: | run: |
echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}' | tr '[:upper:]' '[:lower:]') >> $GITHUB_OUTPUT docker push gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-amd64
echo REPO_VERSION=$(git describe --tags --always | sed 's/^v//') >> $GITHUB_OUTPUT
- uses: docker/login-action@v3 build_arm64:
name: Build and Push arm64
runs-on: [ubuntu-latest, linux_arm64]
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Log in to registry
uses: docker/login-action@v3
with: with:
registry: ${{ env.DOCKER_REGISTRY }} registry: gitea.t000-n.de
username: ${{ secrets.REGISTRY_USER }} username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }} password: ${{ secrets.REGISTRY_PASSWORD }}
- run: |
docker manifest create ${{ env.DOCKER_REGISTRY }}/t.behrendt/${{ steps.meta.outputs.REPO_NAME }}:${{ needs.create_tag.outputs.tag }} \
${{ env.DOCKER_REGISTRY }}/t.behrendt/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }}-amd64 \
${{ env.DOCKER_REGISTRY }}/t.behrendt/${{ steps.meta.outputs.REPO_NAME }}:${{ steps.meta.outputs.REPO_VERSION }}-arm64
docker manifest push ${{ env.DOCKER_REGISTRY }}/t.behrendt/${{ steps.meta.outputs.REPO_NAME }}:${{ needs.create_tag.outputs.tag }} - name: Build Docker image for arm64
run: |
docker build \
--platform linux/arm64 \
-f Dockerfile \
-t gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-arm64 \
.
- name: Push Docker image for arm64
run: |
docker push gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-arm64
manifest:
name: Create and Push Multi-Arch Manifest
needs: [build_amd64, build_arm64]
runs-on: ubuntu-latest
steps:
- name: Log in to registry
uses: docker/login-action@v3
with:
registry: gitea.t000-n.de
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Create and push manifest with git SHA
run: |
docker manifest create gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }} \
gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-amd64 \
gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-arm64
docker manifest push gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}
- name: Optionally tag manifest as latest
if: ${{ inputs.latest == true }}
run: |
docker manifest create gitea.t000-n.de/t.behrendt/backupsidecar:latest \
gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-amd64 \
gitea.t000-n.de/t.behrendt/backupsidecar:${{ github.sha }}-arm64
docker manifest push gitea.t000-n.de/t.behrendt/backupsidecar:latest

View File

@@ -1,24 +0,0 @@
name: CI
on:
pull_request:
jobs:
build:
name: Build Docker image
runs-on:
- ubuntu-latest
- linux_amd64
steps:
- uses: actions/checkout@v5
- uses: docker/setup-buildx-action@v3
- name: Build image
uses: docker/build-push-action@v6
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: false
provenance: false
tags: |
backupsidecar:ci-test

View File

@@ -1,4 +1,4 @@
FROM alpine:3.22 FROM alpine:3.21
RUN apk update && apk add --no-cache \ RUN apk update && apk add --no-cache \
bash \ bash \

View File

@@ -1,3 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json"
}