Compare commits
21 Commits
Author | SHA1 | Date |
---|---|---|
parra | 1037c766cb | |
parra | d0dab103aa | |
dependabot[bot] | cba5eb8269 | |
dependabot[bot] | c62488b34d | |
dependabot[bot] | e0248d4ae8 | |
dependabot[bot] | d6fc51c5dd | |
dependabot[bot] | cc401ce584 | |
dependabot[bot] | fb169301b6 | |
parra | 91f4f96c9d | |
parra | 0a469cdc32 | |
parra | 8080e60fc6 | |
dependabot[bot] | acb7004933 | |
parra | 111e35a0ea | |
parra | f574d93324 | |
Parra | 800c056287 | |
dependabot[bot] | 14268101b5 | |
dependabot[bot] | 59b127afa1 | |
dependabot[bot] | d4e25d4ec2 | |
dependabot[bot] | e5cc5a3182 | |
dependabot[bot] | daf25730f5 | |
Parra | 4abe604875 |
|
@ -10,7 +10,7 @@ on:
|
|||
env:
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
IMAGE_NAME_WITH_INFCLOUD: parrazam/radicale-with-infcloud
|
||||
PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7
|
||||
PLATFORMS: linux/amd64,linux/arm64
|
||||
GH_REPO: ghcr.io
|
||||
|
||||
jobs:
|
||||
|
@ -25,35 +25,35 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Set up QEMU
|
||||
id: qemu
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
image: tonistiigi/binfmt:latest
|
||||
platforms: ${{ env.PLATFORMS }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log into ${{ env.GH_REPO }} registry
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.GH_REPO }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Log into DockerHub registry
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: |
|
||||
${{ env.GH_REPO }}/${{ env.IMAGE_NAME }}
|
||||
|
@ -62,7 +62,7 @@ jobs:
|
|||
|
||||
- name: Build image and push snapshot to GitHub Container Registry
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
platforms: ${{ env.PLATFORMS }}
|
||||
|
|
|
@ -7,7 +7,7 @@ on:
|
|||
env:
|
||||
IMAGE_NAME: ${{ github.repository }}
|
||||
IMAGE_NAME_WITH_INFCLOUD: parrazam/radicale-with-infcloud
|
||||
PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7
|
||||
PLATFORMS: linux/amd64,linux/arm64
|
||||
GH_REPO: ghcr.io
|
||||
|
||||
jobs:
|
||||
|
@ -22,38 +22,38 @@ jobs:
|
|||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install cosign
|
||||
uses: sigstore/cosign-installer@main
|
||||
|
||||
- name: Set up QEMU
|
||||
id: qemu
|
||||
uses: docker/setup-qemu-action@v1
|
||||
uses: docker/setup-qemu-action@v3
|
||||
with:
|
||||
image: tonistiigi/binfmt:latest
|
||||
platforms: ${{ env.PLATFORMS }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v1
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Log into ${{ env.GH_REPO }} registry
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.GH_REPO }}
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Login to DockerHub registry
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
||||
|
||||
- name: Extract Docker metadata
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: |
|
||||
${{ env.IMAGE_NAME }}
|
||||
|
@ -69,7 +69,7 @@ jobs:
|
|||
|
||||
- name: Build image and push to Docker Hub and GitHub Container Registry
|
||||
id: build-and-push
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
context: .
|
||||
build-args: VERSION=${{ github.ref_name }}
|
||||
|
@ -77,18 +77,3 @@ jobs:
|
|||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
|
||||
# Sign the resulting Docker image digest except on PRs.
|
||||
# This will only write to the public Rekor transparency log when the Docker
|
||||
# repository is public to avoid leaking data. If you would like to publish
|
||||
# transparency data even for private images, pass --force to cosign below.
|
||||
# https://github.com/sigstore/cosign
|
||||
- name: Sign the published Docker image
|
||||
env:
|
||||
COSIGN_EXPERIMENTAL: "true"
|
||||
# This step uses the identity token to provision an ephemeral certificate
|
||||
# against the sigstore community Fulcio instance.
|
||||
run: cosign sign ${{ env.GH_REPO }}/${{ env.IMAGE_NAME }}@${{ steps.build-and-push.outputs.digest }}
|
||||
|
||||
- name: Image digest
|
||||
run: echo ${{ steps.build-and-push.outputs.digest }}
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
ARG VERSION=latest
|
||||
FROM tomsquest/docker-radicale:$VERSION
|
||||
FROM tomsquest/docker-radicale:3.1.9.1
|
||||
|
||||
RUN python3 -m pip install --upgrade https://github.com/Unrud/RadicaleInfCloud/archive/master.tar.gz
|
||||
COPY config.js /usr/lib/python3.7/site-packages/radicale_infcloud/web/config.js
|
||||
RUN /venv/bin/pip install git+https://github.com/Unrud/RadicaleInfCloud
|
||||
|
|
|
@ -1,109 +0,0 @@
|
|||
pipeline {
|
||||
agent any
|
||||
environment {
|
||||
SOURCE = "tomsquest/docker-radicale"
|
||||
TARGET = "parrazam/radicale-with-infcloud"
|
||||
MASTER_BRANCH = "master"
|
||||
RELEASE_BRANCH = "release/*"
|
||||
VERSION = ''
|
||||
}
|
||||
options {
|
||||
skipStagesAfterUnstable()
|
||||
}
|
||||
stages {
|
||||
stage('Configure pipeline for branch type') {
|
||||
steps {
|
||||
script {
|
||||
if (env.BRANCH_NAME.startsWith('release/')) {
|
||||
VERSION = (env.BRANCH_NAME).tokenize('/')[1]
|
||||
} else if (env.BRANCH_NAME.equals('master')) {
|
||||
VERSION = ''
|
||||
} else {
|
||||
VERSION = '-SNAPSHOT'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Delete older images') {
|
||||
steps {
|
||||
echo "Removing existing images in local..."
|
||||
sh "docker images | grep ${TARGET} | tr -s ' ' | cut -d ' ' -f 2 | xargs -I {} docker rmi ${TARGET}:{}"
|
||||
}
|
||||
}
|
||||
stage("Build image") {
|
||||
matrix {
|
||||
axes {
|
||||
axis {
|
||||
name 'PLATFORM'
|
||||
values 'linux/amd64', 'linux/arm64', 'linux/arm'
|
||||
}
|
||||
}
|
||||
stages {
|
||||
stage('Build by platform') {
|
||||
options {
|
||||
lock( 'synchronous-matrix' )
|
||||
}
|
||||
steps {
|
||||
echo "Building for ${PLATFORM}"
|
||||
script {
|
||||
stage("Build ${PLATFORM}") {
|
||||
script {
|
||||
SOURCE_IMAGE = SOURCE
|
||||
TARGET_IMAGE = TARGET+':'+PLATFORM.tokenize('/')[1]
|
||||
if (env.BRANCH_NAME.startsWith('release/')) {
|
||||
SOURCE_IMAGE += ":" + VERSION
|
||||
TARGET_IMAGE += "." + VERSION
|
||||
} else {
|
||||
TARGET_IMAGE += VERSION
|
||||
}
|
||||
}
|
||||
echo "Building ${TARGET_IMAGE} image..."
|
||||
sh "docker pull ${SOURCE_IMAGE}"
|
||||
sh "docker buildx build -t ${TARGET_IMAGE} --platform ${PLATFORM} --build-arg VERSION=${PLATFORM.tokenize('/')[1]} ."
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Publish images to Docker Hub') {
|
||||
environment {
|
||||
GROUPED_VERSION = "${VERSION}"
|
||||
}
|
||||
when {
|
||||
anyOf {
|
||||
branch "${MASTER_BRANCH}"
|
||||
branch "${RELEASE_BRANCH}"
|
||||
}
|
||||
}
|
||||
steps {
|
||||
script {
|
||||
if (VERSION.equals('')) {
|
||||
GROUPED_VERSION = 'latest'
|
||||
}
|
||||
if (env.BRANCH_NAME.startsWith('release/')) {
|
||||
VERSION = '.' + (env.BRANCH_NAME).tokenize('/')[1]
|
||||
}
|
||||
IMAGES = ''
|
||||
for (ARCH in ['linux/amd64', 'linux/arm64', 'linux/arm']) {
|
||||
IMAGES += ' -a ' + TARGET + ':' + ARCH.tokenize('/')[1] + VERSION
|
||||
}
|
||||
}
|
||||
echo "${IMAGES}"
|
||||
withCredentials([usernamePassword(credentialsId: 'dockerHub', passwordVariable: 'dockerHubPassword', usernameVariable: 'dockerHubUser')]) {
|
||||
sh "echo ${env.dockerHubPassword} | docker login -u ${env.dockerHubUser} --password-stdin"
|
||||
sh "docker manifest create ${TARGET}:${GROUPED_VERSION} ${IMAGES}"
|
||||
sh "docker manifest push ${TARGET}:${GROUPED_VERSION}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
echo "Removing existing images in local..."
|
||||
sh "docker images | grep ${TARGET} | tr -s ' ' | cut -d ' ' -f 2 | xargs -I {} docker rmi ${TARGET}:{}"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
# Radicale Docker
|
||||
|
||||
![Build Status](https://img.shields.io/github/workflow/status/parrazam/radicale-docker/Build%20and%20Publish%20tag%20version?logo=github-actions&logoColor=white&style=for-the-badge)
|
||||
![Build Status](https://img.shields.io/github/actions/workflow/status/parrazam/radicale-docker/build-tag.yml?logo=github-actions&logoColor=white&style=for-the-badge)
|
||||
[![Pulls](https://img.shields.io/docker/pulls/parrazam/radicale-docker.svg?style=for-the-badge&logo=docker)](https://hub.docker.com/r/parrazam/radicale-docker/)
|
||||
[![Stars](https://img.shields.io/docker/stars/parrazam/radicale-docker.svg?style=for-the-badge&logo=docker)](https://hub.docker.com/r/parrazam/radicale-docker/)
|
||||
[![Docker build](https://img.shields.io/docker/automated/parrazam/radicale-docker.svg?style=for-the-badge&logo=docker)](https://hub.docker.com/r/parrazam/radicale-docker/)
|
||||
|
@ -8,4 +8,4 @@
|
|||
This repo creates a Docker image based on [tomsquest image](https://github.com/tomsquest/docker-radicale) and adds support to **InfCloud**.
|
||||
Images will be automatically deployed to [Docker Registry](https://hub.docker.com/repository/docker/parrazam/radicale-docker)
|
||||
|
||||
Images are available for `amd64`, `armv7` and `arm64` architectures.
|
||||
Images are available for `amd64` and `arm64` architectures.
|
||||
|
|
14
config.js
14
config.js
|
@ -992,14 +992,11 @@ var globalCompatibility={anniversaryOutputFormat: ['apple']};
|
|||
// Example:
|
||||
var globalUriHandlerTel='tel:';
|
||||
var globalUriHandlerEmail='mailto:';
|
||||
var globalUriHandlerUrl='http://';
|
||||
var globalUriHandlerUrl='https://';
|
||||
var globalUriHandlerProfile={
|
||||
'twitter': 'http://twitter.com/%u',
|
||||
'facebook': 'http://www.facebook.com/%u',
|
||||
'flickr': 'http://www.flickr.com/photos/%u',
|
||||
'linkedin': 'http://www.linkedin.com/in/%u',
|
||||
'myspace': 'http://www.myspace.com/%u',
|
||||
'sinaweibo': 'http://weibo.com/n/%u'
|
||||
'twitter': 'https://twitter.com/%u',
|
||||
'facebook': 'https://www.facebook.com/%u',
|
||||
'linkedin': 'https://www.linkedin.com/in/%u'
|
||||
};
|
||||
|
||||
|
||||
|
@ -1009,7 +1006,7 @@ var globalUriHandlerProfile={
|
|||
// all supported country codes (defined in common.js):
|
||||
// grep -E "'[a-z]{2}':\s+\[" common.js | sed -Ee 's#^\s+|\s+\[\s+# #g'
|
||||
// Example:
|
||||
var globalDefaultAddressCountry='us';
|
||||
var globalDefaultAddressCountry='es';
|
||||
|
||||
|
||||
// globalAddressCountryEquivalence
|
||||
|
@ -1051,6 +1048,7 @@ var globalDefaultAddressCountry='us';
|
|||
// is used by default.
|
||||
// Example:
|
||||
var globalAddressCountryEquivalence=[
|
||||
{country: 'es', regex: '^\\W*Spain\\W*$'},
|
||||
{country: 'de', regex: '^\\W*Deutschland\\W*$'},
|
||||
{country: 'sk', regex: '^\\W*Slovensko\\W*$'}
|
||||
];
|
||||
|
|
Loading…
Reference in New Issue