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] branches: [master]
workflow_dispatch: workflow_dispatch:
permissions: env:
contents: read REGISTRY: git.johnogle.info
actions: write IMAGE_NAME: johno/protonmail-bridge-docker
jobs: jobs:
build-and-push: build-deb:
name: Build & Push Docker Image
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs:
image_tag: ${{ steps.meta.outputs.tag }}
steps: steps:
- name: Checkout code - name: Checkout
uses: actions/checkout@v4 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 - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 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: | 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) - name: Build and push (deb)
uses: docker/build-push-action@v5 uses: docker/build-push-action@v5
@@ -41,36 +38,6 @@ jobs:
context: ./deb context: ./deb
push: true push: true
tags: | tags: |
registry.johnogle.info/protonmail-bridge:${{ steps.meta.outputs.tag }} ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
registry.johnogle.info/protonmail-bridge:latest ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.version.outputs.version }}
platforms: linux/amd64 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