name: Build op25 on: workflow_dispatch: push: branches: [main, master] paths: - "op25-container/**" jobs: build: runs-on: ubuntu-latest permissions: contents: read packages: write env: CONTAINER_NAME: op25-client steps: - uses: actions/checkout@v4 - uses: docker/setup-qemu-action@v3 - uses: docker/setup-buildx-action@v3 with: config-inline: | [registry."git.vpn.cusano.net"] http = false insecure = false - uses: docker/login-action@v3 with: registry: git.vpn.cusano.net username: ${{ gitea.actor }} password: ${{ secrets.BUILD_TOKEN }} - name: Get version id: meta run: | echo "REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F'/' '{print $2}')" >> $GITHUB_OUTPUT echo "VERSION=$(git describe --tags --always | sed 's/^v//')" >> $GITHUB_OUTPUT - uses: docker/build-push-action@v6 with: context: ./op25-container file: ./op25-container/Dockerfile platforms: linux/arm64 push: true tags: | git.vpn.cusano.net/${{ vars.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}/${{ env.CONTAINER_NAME }}:${{ steps.meta.outputs.VERSION }} git.vpn.cusano.net/${{ vars.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}/${{ env.CONTAINER_NAME }}:stable # Registry cache — avoids full recompile of GnuRadio/OP25 when only app code changes cache-from: type=registry,ref=git.vpn.cusano.net/${{ vars.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}/${{ env.CONTAINER_NAME }}:buildcache cache-to: type=registry,ref=git.vpn.cusano.net/${{ vars.DOCKER_ORG }}/${{ steps.meta.outputs.REPO_NAME }}/${{ env.CONTAINER_NAME }}:buildcache,mode=max