Compare commits

..

1 Commits

Author SHA1 Message Date
89b9e56349 Add Gitea Actions workflow to build and push Docker image
Builds the deb Dockerfile and pushes to Gitea container registry.
Requires REGISTRY_USER and REGISTRY_PASSWORD secrets.
2026-03-10 20:53:54 -07:00

View File

@@ -5,35 +5,32 @@ on:
branches: [master]
workflow_dispatch:
permissions:
contents: read
actions: write
env:
REGISTRY: git.johnogle.info
IMAGE_NAME: johno/protonmail-bridge-docker
jobs:
build-and-push:
name: Build & Push Docker Image
build-deb:
runs-on: ubuntu-latest
outputs:
image_tag: ${{ steps.meta.outputs.tag }}
steps:
- name: Checkout code
- name: Checkout
uses: actions/checkout@v4
- name: Generate image metadata
id: meta
run: |
VERSION=$(cat deb/PACKAGE | grep -oP '\d+\.\d+\.\d+' | head -1 || echo "unknown")
SHORT_SHA=$(echo "${{ github.sha }}" | cut -c1-7)
echo "tag=${VERSION}-${SHORT_SHA}" >> $GITHUB_OUTPUT
echo "version=${VERSION}" >> $GITHUB_OUTPUT
echo "Image will be tagged: ${VERSION}-${SHORT_SHA}"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to registry
- name: Login to Gitea Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Get bridge version
id: version
run: |
echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login registry.johnogle.info -u ${{ secrets.REGISTRY_USERNAME }} --password-stdin
VERSION=$(cat deb/PACKAGE | grep -oP '\d+\.\d+\.\d+' | head -1 || echo "latest")
echo "version=${VERSION}" >> $GITHUB_OUTPUT
- name: Build and push (deb)
uses: docker/build-push-action@v5
@@ -41,36 +38,6 @@ jobs:
context: ./deb
push: true
tags: |
registry.johnogle.info/protonmail-bridge:${{ steps.meta.outputs.tag }}
registry.johnogle.info/protonmail-bridge:latest
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}
platforms: linux/amd64
deploy:
name: Deploy to Production
runs-on: ubuntu-latest
needs: build-and-push
if: github.ref == 'refs/heads/master' && github.event_name == 'push'
steps:
- name: Checkout k3s-cluster-config
uses: actions/checkout@v4
with:
repository: johno/k3s-cluster-config
token: ${{ secrets.CONFIG_REPO_TOKEN }}
path: k3s-cluster-config
- name: Update HelmRelease image tag
run: |
cd k3s-cluster-config
sed -i 's|repository: shenxn/protonmail-bridge|repository: registry.johnogle.info/protonmail-bridge|' \
clusters/oglenet/apps/infrastructure/protonmail-bridge.yaml
sed -i 's/tag: .*/tag: "${{ needs.build-and-push.outputs.image_tag }}"/' \
clusters/oglenet/apps/infrastructure/protonmail-bridge.yaml
- name: Commit and push
run: |
cd k3s-cluster-config
git config user.name "Gitea CI"
git config user.email "ci@johnogle.info"
git add clusters/oglenet/apps/infrastructure/protonmail-bridge.yaml
git diff --cached --quiet || git commit -m "Deploy protonmail-bridge:${{ needs.build-and-push.outputs.image_tag }}"
git push