pzzld-server 0.0.2

A production ready server optimized for WASM applications
Documentation
name: docker

concurrency:   
  cancel-in-progress: false
  group: ${{ github.workflow }}-${{ github.ref }}

env:
  REGISTRY: ghcr.io # hub.docker.com

on:
  pull_request:
    branches: [ main, v*.*.* ]
  push:
    tags: [ v*.*.* ]
  repository_dispatch:
    types: [ docker ]
  schedule:
    - cron: "30 21 * * 0" # Every Sunday at 9:30pm UTC
  workflow_dispatch:

permissions: write-all

jobs:
  application:
    env:
      IMAGE: ${{ github.repository }}
    runs-on: ubuntu-latest
    steps:
    - 
      name: checkout
      uses: actions/checkout@v4
    - 
      id: meta
      name: docker metadata
      uses: docker/metadata-action@v5
      with:
        flavor: latest=true
        images: ${{ env.REGISTRY }}/${{ env.IMAGE }}
        tags: |
          type=schedule
          type=ref,event=branch
          type=ref,event=pr
          type=semver,pattern={{version}}
          type=semver,pattern={{major}}.{{minor}}
          type=semver,pattern={{major}}
          type=sha  
    -
      name: setup qemu
      uses: docker/setup-qemu-action@v3
    -
      name: Setup Docker Buildx
      uses: docker/setup-buildx-action@v3
    -
      name: Login to Docker Hub
      uses: docker/login-action@v3
      with:
        registry: ${{ env.REGISTRY }}
        password: ${{ secrets.GITHUB_TOKEN }}
        username: ${{ github.actor }}
    -
      id: push
      name: build and push
      uses: docker/build-push-action@v6
      with:
        cache-from: type=gha
        cache-to: type=gha,mode=max
        context: .
        file: ./Dockerfile
        github-token: ${{ secrets.GITHUB_TOKEN }}
        labels: ${{ steps.meta.outputs.labels }}
        platforms: linux/amd64
        push: true
        tags: ${{ steps.meta.outputs.tags }}
    - 
      continue-on-error: true
      name: attestation
      uses: actions/attest-build-provenance@v1
      with:
        push-to-registry: true
        subject-name: ${{ env.REGISTRY }}/${{ env.IMAGE}}
        subject-digest: ${{ steps.push.outputs.digest }}