protonmail-bridge-nextcoud-.../.github/workflows/build.yaml
2026-03-11 20:14:05 +00:00

76 lines
2.0 KiB
YAML

name: Build and Push
on:
push:
branches: [master]
paths:
- .github/workflows/build.yaml
- build/**
pull_request:
paths:
- .github/workflows/build.yaml
- build/**
workflow_dispatch:
permissions:
contents: read
packages: write
security-events: write
env:
IMAGE: ghcr.io/${{ github.repository_owner }}/protonmail-bridge
jobs:
resolve-version:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.version.outputs.version }}
steps:
- name: Get latest upstream release
id: version
run: |
version=$(curl -s https://api.github.com/repos/ProtonMail/proton-bridge/releases/latest | jq -r '.tag_name')
echo "version=$version" >> $GITHUB_OUTPUT
echo "Resolved version: $version"
build:
needs: resolve-version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
if: github.event_name != 'pull_request'
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build
uses: docker/build-push-action@v6
with:
context: ./build
push: ${{ github.event_name != 'pull_request' }}
load: ${{ github.event_name == 'pull_request' }}
tags: |
${{ env.IMAGE }}:latest
${{ env.IMAGE }}:${{ needs.resolve-version.outputs.version }}
build-args: |
version=${{ needs.resolve-version.outputs.version }}
- name: Trivy scan
uses: aquasecurity/trivy-action@0.35.0
with:
image-ref: ${{ env.IMAGE }}:${{ needs.resolve-version.outputs.version }}
format: sarif
output: trivy-results.sarif
severity: CRITICAL,HIGH
- name: Upload Trivy results
uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: trivy-results.sarif