Compare commits

...

5 Commits

Author SHA1 Message Date
Vladimir Dubrovin
5cae5dc866 Keep provenance
Some checks are pending
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI Linux / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI MacOS / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI Windows / ${{ matrix.target }} (windows-2022) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (macos-15) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-24.04-arm) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (ubuntu-latest) (push) Waiting to run
C/C++ CI cmake / ${{ matrix.target }} (windows-2022) (push) Waiting to run
2026-05-31 16:07:53 +03:00
Vladimir Dubrovin
56fdbd6e8a remove debugging ls in dockerfiles 2026-05-31 15:33:07 +03:00
Vladimir Dubrovin
997671ee16 publish builds on release 2026-05-31 15:29:11 +03:00
Vladimir Dubrovin
34e9c453fa Workflows update 2026-05-31 13:47:41 +03:00
Vladimir Dubrovin
3dde2de498 do not keep untagged dockers 2026-05-31 13:10:26 +03:00
15 changed files with 121 additions and 65 deletions

View File

@ -1,9 +1,8 @@
name: RPM/DEB build aarch64 name: RPM/DEB build aarch64
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -45,11 +44,17 @@ jobs:
rpmbuild -ba 3proxy-$RELEASE.spec rpmbuild -ba 3proxy-$RELEASE.spec
cd $ret cd $ret
mv ~/rpmbuild/RPMS/aarch64/3proxy-$RELEASE-1.aarch64.rpm 3proxy-$RELEASE.arm64.rpm mv ~/rpmbuild/RPMS/aarch64/3proxy-$RELEASE-1.aarch64.rpm 3proxy-$RELEASE.arm64.rpm
- name: Get artifact arp - name: Get artifact rpm
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: "3proxy-${{ env.RELEASE }}-arm64.rpm" name: "3proxy-${{ env.RELEASE }}-arm64.rpm"
path: "*.rpm" path: "*.rpm"
- name: Upload rpm to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}.arm64.rpm
- name: debbuild - name: debbuild
run: | run: |
ret=`pwd` ret=`pwd`
@ -70,3 +75,9 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-arm64.deb" name: "3proxy-${{ env.RELEASE }}-arm64.deb"
path: "*.deb" path: "*.deb"
- name: Upload deb to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}.arm64.deb

View File

@ -1,9 +1,8 @@
name: RPM/DEB build armhf name: RPM/DEB build armhf
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -72,11 +71,17 @@ jobs:
rpmbuild -ba --define "PAMLIB pam0g" --define "_arch arm" --define "cross yes" --target=arm-linux-gnueabi 3proxy-$RELEASE.spec rpmbuild -ba --define "PAMLIB pam0g" --define "_arch arm" --define "cross yes" --target=arm-linux-gnueabi 3proxy-$RELEASE.spec
cd $ret cd $ret
mv ~/rpmbuild/RPMS/arm/3proxy-$RELEASE-1.arm.rpm 3proxy-$RELEASE.arm.rpm mv ~/rpmbuild/RPMS/arm/3proxy-$RELEASE-1.arm.rpm 3proxy-$RELEASE.arm.rpm
- name: Get artifact - name: Get artifact rpm
uses: actions/upload-artifact@v6 uses: actions/upload-artifact@v6
with: with:
name: "3proxy-${{ env.RELEASE }}-arm.rpm" name: "3proxy-${{ env.RELEASE }}-arm.rpm"
path: "*.rpm" path: "*.rpm"
- name: Upload rpm to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}.arm.rpm
- name: debbuild - name: debbuild
run: | run: |
ret=`pwd` ret=`pwd`
@ -103,3 +108,9 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-arm.deb" name: "3proxy-${{ env.RELEASE }}-arm.deb"
path: "*.deb" path: "*.deb"
- name: Upload deb to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}.arm.deb

View File

@ -1,9 +1,8 @@
name: RPM/DEB build x86-64 name: RPM/DEB build x86-64
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -50,6 +49,12 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-x86_64.rpm" name: "3proxy-${{ env.RELEASE }}-x86_64.rpm"
path: "*.rpm" path: "*.rpm"
- name: Upload rpm to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}.x86_64.rpm
- name: debbuild - name: debbuild
run: | run: |
ret=`pwd` ret=`pwd`
@ -70,4 +75,10 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-x86_64.deb" name: "3proxy-${{ env.RELEASE }}-x86_64.deb"
path: "*.deb" path: "*.deb"
- name: Upload deb to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}.x86_64.deb

View File

@ -1,9 +1,8 @@
name: Build Win32 3proxy-lite with Watcom name: Build Win32 3proxy-lite with Watcom
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -80,3 +79,13 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-lite" name: "3proxy-${{ env.RELEASE }}-lite"
path: dist/ path: dist/
- name: Create zip
if: github.event_name == 'release'
shell: pwsh
run: Compress-Archive -Path dist/* -DestinationPath 3proxy-${{ env.RELEASE }}-lite.zip
- name: Upload to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}-lite.zip

View File

@ -1,9 +1,8 @@
name: Build Win32 3proxy with MSVC name: Build Win32 3proxy with MSVC
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -86,3 +85,13 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}" name: "3proxy-${{ env.RELEASE }}"
path: dist/ path: dist/
- name: Create zip
if: github.event_name == 'release'
shell: pwsh
run: Compress-Archive -Path dist/* -DestinationPath 3proxy-${{ env.RELEASE }}-x86.zip
- name: Upload to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}-x86.zip

View File

@ -1,9 +1,8 @@
name: Build Win64 3proxy with MSVC name: Build Win64 3proxy with MSVC
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -87,3 +86,13 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-x64" name: "3proxy-${{ env.RELEASE }}-x64"
path: dist/ path: dist/
- name: Create zip
if: github.event_name == 'release'
shell: pwsh
run: Compress-Archive -Path dist/* -DestinationPath 3proxy-${{ env.RELEASE }}-x64.zip
- name: Upload to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}-x64.zip

View File

@ -1,9 +1,8 @@
name: Build Win-arm64 3proxy with MSVC name: Build Win-arm64 3proxy with MSVC
on: on:
push: release:
paths: types: [published]
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@ -86,3 +85,13 @@ jobs:
with: with:
name: "3proxy-${{ env.RELEASE }}-arm64" name: "3proxy-${{ env.RELEASE }}-arm64"
path: dist/ path: dist/
- name: Create zip
if: github.event_name == 'release'
shell: pwsh
run: Compress-Archive -Path dist/* -DestinationPath 3proxy-${{ env.RELEASE }}-arm64.zip
- name: Upload to release
if: github.event_name == 'release'
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.event.release.tag_name }}
run: gh release upload "$TAG" 3proxy-${{ env.RELEASE }}-arm64.zip

View File

@ -4,9 +4,6 @@ on:
push: push:
branches: [ "master" ] branches: [ "master" ]
paths: [ '**.c', '**.h', 'Makefile.Linux', '.github/configs', '.github/workflows/c-cpp-Linux.yml' ] paths: [ '**.c', '**.h', 'Makefile.Linux', '.github/configs', '.github/workflows/c-cpp-Linux.yml' ]
pull_request:
branches: [ "master" ]
paths: [ '**.c', '**.h', 'Makefile.Linux', '.github/configs', '.github/workflows/c-cpp-Linux.yml' ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@ -4,9 +4,6 @@ on:
push: push:
branches: [ "master" ] branches: [ "master" ]
paths: [ '**.c', '**.h', 'Makefile.FreeBSD', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ] paths: [ '**.c', '**.h', 'Makefile.FreeBSD', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ]
pull_request:
branches: [ "master" ]
paths: [ '**.c', '**.h', 'Makefile.FreeBSD', '.github/configs', '.github/workflows/c-cpp-MacOS.yml' ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@ -4,9 +4,6 @@ on:
push: push:
branches: [ "master" ] branches: [ "master" ]
paths: [ '**.c', '**.h', 'Makefile.msvc', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ] paths: [ '**.c', '**.h', 'Makefile.msvc', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ]
pull_request:
branches: [ "master" ]
paths: [ '**.c', '**.h', 'Makefile.msvc', '.github/configs', '.github/workflows/c-cpp-Windows.yml' ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@ -4,9 +4,6 @@ on:
push: push:
branches: [ "master", "unix_socket" ] branches: [ "master", "unix_socket" ]
paths: [ '**.c', '**.h', '**.cmake', 'CMakeLists.txt', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ] paths: [ '**.c', '**.h', '**.cmake', 'CMakeLists.txt', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ]
pull_request:
branches: [ "master" ]
paths: [ '**.c', '**.h', '**.cmake', 'CMakeLists.txt', '.github/configs', '.github/workflows/c-cpp-cmake.yml' ]
workflow_dispatch: workflow_dispatch:
jobs: jobs:

View File

@ -1,10 +1,8 @@
name: Build Docker images (GHCR) name: Build Docker images (GHCR)
on: on:
push: release:
branches: [master] types: [published]
paths:
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
env: env:
@ -25,29 +23,31 @@ jobs:
- name: Determine tags - name: Determine tags
id: tags id: tags
env: env:
REF: ${{ github.ref }} RELEASE_TAG: ${{ github.event.release.tag_name }}
IMAGE: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} IMAGE: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
run: | run: |
if [[ "$REF" == refs/tags/* ]]; then if [[ "$RELEASE_TAG" != "" ]]; then
RELEASE=$(cat RELEASE) RELEASE="${RELEASE_TAG#v}"
echo "minimal=${IMAGE}:${RELEASE}.minimal,${IMAGE}:minimal" >> "$GITHUB_OUTPUT" echo "minimal=${IMAGE}:${RELEASE}.minimal,${IMAGE}:minimal" >> "$GITHUB_OUTPUT"
echo "busybox=${IMAGE}:${RELEASE}.busybox,${IMAGE}:busybox" >> "$GITHUB_OUTPUT" echo "busybox=${IMAGE}:${RELEASE}.busybox,${IMAGE}:busybox" >> "$GITHUB_OUTPUT"
echo "full=${IMAGE}:${RELEASE},${IMAGE}:latest" >> "$GITHUB_OUTPUT" echo "full=${IMAGE}:${RELEASE},${IMAGE}:latest" >> "$GITHUB_OUTPUT"
else else
echo "minimal=${IMAGE}:devel.minimal" >> "$GITHUB_OUTPUT" DATETIME=$(date +%d%m%y%H%M%S)
echo "busybox=${IMAGE}:devel.busybox" >> "$GITHUB_OUTPUT" BRANCH=$(echo "${GITHUB_REF#refs/heads/}" | tr "/" "-")
echo "full=${IMAGE}:devel" >> "$GITHUB_OUTPUT" echo "minimal=${IMAGE}:${DATETIME}-${BRANCH}.minimal,${IMAGE}:${BRANCH}.minimal" >> "$GITHUB_OUTPUT"
echo "busybox=${IMAGE}:${DATETIME}-${BRANCH}.busybox,${IMAGE}:${BRANCH}.busybox" >> "$GITHUB_OUTPUT"
echo "full=${IMAGE}:${DATETIME}-${BRANCH},${IMAGE}:${BRANCH}" >> "$GITHUB_OUTPUT"
fi fi
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v4
- name: Login to GHCR - name: Login to GHCR
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v3 uses: docker/login-action@v4
with: with:
registry: ${{ env.REGISTRY }} registry: ${{ env.REGISTRY }}
username: ${{ github.actor }} username: ${{ github.actor }}
@ -79,3 +79,4 @@ jobs:
platforms: linux/amd64,linux/arm64 platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }} push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.tags.outputs.full }} tags: ${{ steps.tags.outputs.full }}

View File

@ -1,10 +1,8 @@
name: Build Docker images (Docker Hub) name: Build Docker images (Docker Hub)
on: on:
push: release:
branches: [master] types: [published]
paths:
- 'RELEASE'
workflow_dispatch: workflow_dispatch:
env: env:
@ -24,28 +22,30 @@ jobs:
- name: Determine tags - name: Determine tags
id: tags id: tags
env: env:
REF: ${{ github.ref }} RELEASE_TAG: ${{ github.event.release.tag_name }}
run: | run: |
if [[ "$REF" == refs/tags/* ]]; then if [[ "$RELEASE_TAG" != "" ]]; then
RELEASE=$(cat RELEASE) RELEASE="${RELEASE_TAG#v}"
echo "minimal=${REGISTRY}/${IMAGE_NAME}:${RELEASE}.minimal,${REGISTRY}/${IMAGE_NAME}:minimal" >> "$GITHUB_OUTPUT" echo "minimal=${REGISTRY}/${IMAGE_NAME}:${RELEASE}.minimal,${REGISTRY}/${IMAGE_NAME}:minimal" >> "$GITHUB_OUTPUT"
echo "busybox=${REGISTRY}/${IMAGE_NAME}:${RELEASE}.busybox,${REGISTRY}/${IMAGE_NAME}:busybox" >> "$GITHUB_OUTPUT" echo "busybox=${REGISTRY}/${IMAGE_NAME}:${RELEASE}.busybox,${REGISTRY}/${IMAGE_NAME}:busybox" >> "$GITHUB_OUTPUT"
echo "full=${REGISTRY}/${IMAGE_NAME}:${RELEASE},${REGISTRY}/${IMAGE_NAME}:latest" >> "$GITHUB_OUTPUT" echo "full=${REGISTRY}/${IMAGE_NAME}:${RELEASE},${REGISTRY}/${IMAGE_NAME}:latest" >> "$GITHUB_OUTPUT"
else else
echo "minimal=${REGISTRY}/${IMAGE_NAME}:devel.minimal" >> "$GITHUB_OUTPUT" DATETIME=$(date +%d%m%y%H%M%S)
echo "busybox=${REGISTRY}/${IMAGE_NAME}:devel.busybox" >> "$GITHUB_OUTPUT" BRANCH=$(echo "${GITHUB_REF#refs/heads/}" | tr "/" "-")
echo "full=${REGISTRY}/${IMAGE_NAME}:devel" >> "$GITHUB_OUTPUT" echo "minimal=${REGISTRY}/${IMAGE_NAME}:${DATETIME}-${BRANCH}.minimal,${REGISTRY}/${IMAGE_NAME}:${BRANCH}.minimal" >> "$GITHUB_OUTPUT"
echo "busybox=${REGISTRY}/${IMAGE_NAME}:${DATETIME}-${BRANCH}.busybox,${REGISTRY}/${IMAGE_NAME}:${BRANCH}.busybox" >> "$GITHUB_OUTPUT"
echo "full=${REGISTRY}/${IMAGE_NAME}:${DATETIME}-${BRANCH},${REGISTRY}/${IMAGE_NAME}:${BRANCH}" >> "$GITHUB_OUTPUT"
fi fi
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3 uses: docker/setup-buildx-action@v4
- name: Login to Docker Hub - name: Login to Docker Hub
if: github.event_name != 'pull_request' if: github.event_name != 'pull_request'
uses: docker/login-action@v3 uses: docker/login-action@v4
with: with:
username: ${{ secrets.DOCKERHUB_USERNAME }} username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }} password: ${{ secrets.DOCKERHUB_TOKEN }}

View File

@ -44,8 +44,7 @@ RUN cd /dist &&\
ln -s /lib usr/lib64 ln -s /lib usr/lib64
RUN cp /lib/ld-*.so.* /dist/usr/local/3proxy/libexec || true RUN cp /lib/ld-*.so.* /dist/usr/local/3proxy/libexec || true
RUN cp /lib64/ld-*.so.* /dist/usr/local/3proxy/libexec || true RUN cp /lib64/ld-*.so.* /dist/usr/local/3proxy/libexec || true
RUN cp "/lib/`gcc -dumpmachine`"/libdl.so.* /dist/usr/local/3proxy/libexec &&\ RUN cp "/lib/`gcc -dumpmachine`"/libdl.so.* /dist/usr/local/3proxy/libexec
ls -lR /dist
FROM docker.io/busybox:glibc FROM docker.io/busybox:glibc
COPY --from=buildenv /dist / COPY --from=buildenv /dist /

View File

@ -54,8 +54,7 @@ RUN cd /dist/usr/local/3proxy/ &&\
RUN cd /dist/usr/local/3proxy/usr &&\ RUN cd /dist/usr/local/3proxy/usr &&\
ln -s ../libexec lib &&\ ln -s ../libexec lib &&\
ln -s ../libexec lib64 &&\ ln -s ../libexec lib64 &&\
strip /dist/usr/local/3proxy/libexec/*.so &&\ strip /dist/usr/local/3proxy/libexec/*.so
ls -lR /dist
FROM scratch FROM scratch
COPY --from=buildenv /dist / COPY --from=buildenv /dist /