71 lignes
2.2 KiB
YAML
71 lignes
2.2 KiB
YAML
name: Build & Push Nextcloud Docker Image (registry cache)
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
version:
|
|
description: "Nextcloud version (ex: 26.0.1). Leave empty for latest"
|
|
required: false
|
|
latest:
|
|
description: "Tag as latest (true/false)"
|
|
required: false
|
|
default: "false"
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install tools
|
|
run: |
|
|
apt-get update
|
|
apt-get install -y curl jq
|
|
|
|
- name: Determine Nextcloud version
|
|
run: |
|
|
if [ -z "${{ inputs.version }}" ]; then
|
|
NC_VERS=$(curl -s https://api.github.com/repos/nextcloud/server/releases/latest \
|
|
| jq -r '.tag_name' | tr -d 'v')
|
|
else
|
|
NC_VERS="${{ inputs.version }}"
|
|
fi
|
|
|
|
MAJOR_VERS=$(echo "$NC_VERS" | cut -d. -f1)
|
|
|
|
if [ "$MAJOR_VERS" -lt 24 ]; then
|
|
echo "Unsupported Nextcloud major version: $MAJOR_VERS"
|
|
exit 1
|
|
fi
|
|
|
|
echo "NC_VERS=$NC_VERS" >> $GITHUB_ENV
|
|
echo "MAJOR_VERS=$MAJOR_VERS" >> $GITHUB_ENV
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
|
|
- name: Login to Gitea Registry
|
|
uses: docker/login-action@v3
|
|
with:
|
|
registry: ${{ vars.DOCKER_REGISTRY }}
|
|
username: ${{ secrets.REGISTRY_USERNAME }}
|
|
password: ${{ secrets.REGISTRY_PASSWORD }}
|
|
|
|
- name: Build & push with registry cache
|
|
run: |
|
|
TAGS="-t ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/nextcloud:$NC_VERS"
|
|
|
|
if [ "${{ inputs.latest }}" = "true" ]; then
|
|
TAGS="$TAGS -t ${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/nextcloud:latest"
|
|
fi
|
|
|
|
docker buildx build \
|
|
--push \
|
|
--build-arg NC_VERS=$NC_VERS \
|
|
--cache-from type=registry,ref=${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/nextcloud:buildcache \
|
|
--cache-to type=registry,ref=${{ vars.DOCKER_REGISTRY }}/${{ vars.DOCKER_NAMESPACE }}/nextcloud:buildcache,mode=max \
|
|
$TAGS \
|
|
./$MAJOR_VERS
|