From 7714c971c1f53de3417a55b2736a617a17ba2dd1 Mon Sep 17 00:00:00 2001 From: Jimmy GALLAND Date: Thu, 15 Jan 2026 22:35:17 +0100 Subject: [PATCH] add action --- .github/workflows/docker.yml | 81 ++++++++++++++++++++++++++++++++++++ build.sh | 2 +- 2 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/docker.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..6344e37 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,81 @@ +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 Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Login to Gitea Registry + uses: docker/login-action@v3 + with: + registry: git.celjim.fr + username: ${{ secrets.GITEA_REGISTRY_USERNAME }} + password: ${{ secrets.GITEA_REGISTRY_PASSWORD }} + + - name: Build & push with registry cache + run: | + docker buildx build \ + --push \ + --build-arg NC_VERS=$NC_VERS \ + --cache-from type=registry,ref=git.celjim.fr/jimmygalland/nextcloud:buildcache \ + --cache-to type=registry,ref=git.celjim.fr/jimmygalland/nextcloud:buildcache,mode=max \ + -t jimmygalland/nextcloud:$NC_VERS \ + -t git.celjim.fr/jimmygalland/nextcloud:$NC_VERS \ + ./$MAJOR_VERS + + - name: Tag & push latest + if: ${{ inputs.latest == 'true' }} + run: | + docker tag jimmygalland/nextcloud:$NC_VERS jimmygalland/nextcloud:latest + docker tag jimmygalland/nextcloud:$NC_VERS git.celjim.fr/jimmygalland/nextcloud:latest + + docker push jimmygalland/nextcloud:latest + docker push git.celjim.fr/jimmygalland/nextcloud:latest + diff --git a/build.sh b/build.sh index 14a2ed0..7dd61cd 100644 --- a/build.sh +++ b/build.sh @@ -32,7 +32,7 @@ fi MAJOR_VERS=$( cut -d'.' -f 1 <<< "${NC_VERS}") -if [[ ( ${MAJOR_VERS} < 24 ) && ( ${MAJOR_VERS} > 27 ) ]]; then +if [[ ( ${MAJOR_VERS} < 24 ) ]]; then exit fi