mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	GHA and Cmake changes (#1888)
Done with Vort's (https://github.com/Vort) cooperation Signed-off-by: R4SAS <r4sas@i2pmail.org>
This commit is contained in:
		
							parent
							
								
									93d89a1fe0
								
							
						
					
					
						commit
						b7f0d87daf
					
				
					 18 changed files with 369 additions and 188 deletions
				
			
		
							
								
								
									
										17
									
								
								.github/workflows/build-deb.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/build-deb.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -6,25 +6,34 @@ jobs:
 | 
			
		|||
  build:
 | 
			
		||||
    name: ${{ matrix.dist }}
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        dist: ['buster', 'bullseye', 'bookworm']
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      with:
 | 
			
		||||
        fetch-depth: 0
 | 
			
		||||
    - uses: jtdor/build-deb-action@v1
 | 
			
		||||
 | 
			
		||||
    - name: Build package
 | 
			
		||||
      uses: jtdor/build-deb-action@v1
 | 
			
		||||
      with:
 | 
			
		||||
        docker-image: debian:${{ matrix.dist }}-slim
 | 
			
		||||
        buildpackage-opts: --build=binary --no-sign
 | 
			
		||||
        before-build-hook: debchange --controlmaint --local "+${{ github.sha }}~${{ matrix.dist }}" -b --distribution ${{ matrix.dist }} "CI build"
 | 
			
		||||
        extra-build-deps: devscripts git
 | 
			
		||||
    - uses: actions/upload-artifact@v3
 | 
			
		||||
 | 
			
		||||
    - name: Upload package
 | 
			
		||||
      uses: actions/upload-artifact@v3
 | 
			
		||||
      with:
 | 
			
		||||
        name: i2pd_${{ matrix.dist }}
 | 
			
		||||
        path: debian/artifacts/i2pd_*.deb
 | 
			
		||||
    - uses: actions/upload-artifact@v3
 | 
			
		||||
 | 
			
		||||
    - name: Upload debugging symbols
 | 
			
		||||
      uses: actions/upload-artifact@v3
 | 
			
		||||
      with:
 | 
			
		||||
        name: i2pd-dbgsym_${{ matrix.dist }}
 | 
			
		||||
        path: debian/artifacts/i2pd-dbgsym_*.deb
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										10
									
								
								.github/workflows/build-freebsd.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								.github/workflows/build-freebsd.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -6,8 +6,11 @@ jobs:
 | 
			
		|||
  build:
 | 
			
		||||
    runs-on: macos-12
 | 
			
		||||
    name: with UPnP
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
    - name: Test in FreeBSD
 | 
			
		||||
      id: test
 | 
			
		||||
      uses: vmactions/freebsd-vm@v0.3.0
 | 
			
		||||
| 
						 | 
				
			
			@ -21,8 +24,9 @@ jobs:
 | 
			
		|||
          cd build
 | 
			
		||||
          cmake -DWITH_UPNP=ON -DCMAKE_BUILD_TYPE=Release .
 | 
			
		||||
          gmake -j2
 | 
			
		||||
 | 
			
		||||
    - name: Upload artifacts
 | 
			
		||||
      uses: actions/upload-artifact@v2
 | 
			
		||||
      uses: actions/upload-artifact@v3
 | 
			
		||||
      with:
 | 
			
		||||
        name: i2pd-freebsd
 | 
			
		||||
        path: build/i2pd
 | 
			
		||||
        path: build/i2pd
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										7
									
								
								.github/workflows/build-osx.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										7
									
								
								.github/workflows/build-osx.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -6,16 +6,21 @@ jobs:
 | 
			
		|||
  build:
 | 
			
		||||
    name: With USE_UPNP=${{ matrix.with_upnp }}
 | 
			
		||||
    runs-on: macOS-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: true
 | 
			
		||||
      matrix:
 | 
			
		||||
        with_upnp: ['yes', 'no']
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
    - name: install packages
 | 
			
		||||
      run: |
 | 
			
		||||
        find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete
 | 
			
		||||
        brew update
 | 
			
		||||
        brew install boost miniupnpc openssl@1.1
 | 
			
		||||
 | 
			
		||||
    - name: build application
 | 
			
		||||
      run: make HOMEBREW=1 USE_UPNP=${{ matrix.with_upnp }} PREFIX=$GITHUB_WORKSPACE/output -j3
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										82
									
								
								.github/workflows/build-windows.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										82
									
								
								.github/workflows/build-windows.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -10,42 +10,104 @@ jobs:
 | 
			
		|||
  build:
 | 
			
		||||
    name: Building using ${{ matrix.arch }} toolchain
 | 
			
		||||
    runs-on: windows-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: true
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        include: [
 | 
			
		||||
          { msystem: UCRT64, arch: ucrt-x86_64, arch_short: x64-ucrt },
 | 
			
		||||
          { msystem: MINGW64, arch: x86_64, arch_short: x64 },
 | 
			
		||||
          { msystem: MINGW32, arch: i686, arch_short: x86 }
 | 
			
		||||
          { msystem: UCRT64, arch: ucrt-x86_64, arch_short: x64-ucrt, compiler: gcc },
 | 
			
		||||
          { msystem: CLANG64, arch: clang-x86_64, arch_short: x64-clang, compiler: clang },
 | 
			
		||||
          { msystem: MINGW64, arch: x86_64, arch_short: x64, compiler: gcc },
 | 
			
		||||
          { msystem: MINGW32, arch: i686, arch_short: x86, compiler: gcc }
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      with:
 | 
			
		||||
        fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
    - name: Setup MSYS2
 | 
			
		||||
      uses: msys2/setup-msys2@v2
 | 
			
		||||
      with:
 | 
			
		||||
        msystem: ${{ matrix.msystem }}
 | 
			
		||||
        install: base-devel mingw-w64-${{ matrix.arch }}-gcc mingw-w64-${{ matrix.arch }}-boost mingw-w64-${{ matrix.arch }}-openssl mingw-w64-${{ matrix.arch }}-miniupnpc
 | 
			
		||||
        install: base-devel git mingw-w64-${{ matrix.arch }}-${{ matrix.compiler }} mingw-w64-${{ matrix.arch }}-boost mingw-w64-${{ matrix.arch }}-openssl mingw-w64-${{ matrix.arch }}-miniupnpc
 | 
			
		||||
        update: true
 | 
			
		||||
 | 
			
		||||
    - name: Install additional clang packages
 | 
			
		||||
      if: ${{ matrix.msystem == 'CLANG64' }}
 | 
			
		||||
      run: pacman --noconfirm -S mingw-w64-${{ matrix.arch }}-gcc-compat
 | 
			
		||||
 | 
			
		||||
    - name: Build application
 | 
			
		||||
      run: |
 | 
			
		||||
        mkdir -p obj/Win32 obj/libi2pd obj/libi2pd_client obj/daemon
 | 
			
		||||
        make USE_UPNP=yes DEBUG=no USE_GIT_VERSION=yes -j3
 | 
			
		||||
 | 
			
		||||
    - name: Upload artifacts
 | 
			
		||||
      uses: actions/upload-artifact@v2
 | 
			
		||||
      uses: actions/upload-artifact@v3
 | 
			
		||||
      with:
 | 
			
		||||
        name: i2pd-${{ matrix.arch_short }}.exe
 | 
			
		||||
        path: i2pd.exe
 | 
			
		||||
 | 
			
		||||
  build-cmake:
 | 
			
		||||
    name: Building using ${{ matrix.arch }} toolchain using CMake
 | 
			
		||||
    runs-on: windows-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: false
 | 
			
		||||
      matrix:
 | 
			
		||||
        include: [
 | 
			
		||||
          { msystem: UCRT64, arch: ucrt-x86_64, arch_short: x64-ucrt, compiler: gcc },
 | 
			
		||||
          { msystem: CLANG64, arch: clang-x86_64, arch_short: x64-clang, compiler: clang },
 | 
			
		||||
          { msystem: MINGW64, arch: x86_64, arch_short: x64, compiler: gcc },
 | 
			
		||||
          { msystem: MINGW32, arch: i686, arch_short: x86, compiler: gcc }
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      with:
 | 
			
		||||
        fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
    - name: Setup MSYS2
 | 
			
		||||
      uses: msys2/setup-msys2@v2
 | 
			
		||||
      with:
 | 
			
		||||
        msystem: ${{ matrix.msystem }}
 | 
			
		||||
        install: base-devel git mingw-w64-${{ matrix.arch }}-cmake mingw-w64-${{ matrix.arch }}-ninja mingw-w64-${{ matrix.arch }}-${{ matrix.compiler }} mingw-w64-${{ matrix.arch }}-boost mingw-w64-${{ matrix.arch }}-openssl mingw-w64-${{ matrix.arch }}-miniupnpc
 | 
			
		||||
        update: true
 | 
			
		||||
 | 
			
		||||
    - name: Build application
 | 
			
		||||
      run: |
 | 
			
		||||
        cd build
 | 
			
		||||
        cmake -DWITH_GIT_VERSION=ON -DWITH_STATIC=ON -DWITH_UPNP=ON -DCMAKE_BUILD_TYPE=Release .
 | 
			
		||||
        cmake --build . -- -j3
 | 
			
		||||
 | 
			
		||||
    - name: Upload artifacts
 | 
			
		||||
      uses: actions/upload-artifact@v3
 | 
			
		||||
      with:
 | 
			
		||||
        name: i2pd-cmake-${{ matrix.arch_short }}.exe
 | 
			
		||||
        path: build/i2pd.exe
 | 
			
		||||
 | 
			
		||||
  build-xp:
 | 
			
		||||
    name: Building for Windows XP
 | 
			
		||||
    runs-on: windows-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
        fail-fast: false
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
      with:
 | 
			
		||||
        fetch-depth: 0
 | 
			
		||||
 | 
			
		||||
    - name: Setup MSYS2
 | 
			
		||||
      uses: msys2/setup-msys2@v2
 | 
			
		||||
      with:
 | 
			
		||||
        msystem: MINGW32
 | 
			
		||||
        install: base-devel git mingw-w64-i686-gcc mingw-w64-i686-boost mingw-w64-i686-openssl mingw-w64-i686-miniupnpc
 | 
			
		||||
        update: true
 | 
			
		||||
 | 
			
		||||
    - name: Build WinXP-capable CRT packages
 | 
			
		||||
      run: |
 | 
			
		||||
        git clone https://github.com/msys2/MINGW-packages
 | 
			
		||||
| 
						 | 
				
			
			@ -64,12 +126,14 @@ jobs:
 | 
			
		|||
        pacman --noconfirm -U mingw-w64-i686-libwinpthread-git-*-any.pkg.tar.zst mingw-w64-i686-winpthreads-git-*-any.pkg.tar.zst
 | 
			
		||||
        popd
 | 
			
		||||
        popd
 | 
			
		||||
 | 
			
		||||
    - name: Build application
 | 
			
		||||
      run: |
 | 
			
		||||
        mkdir -p obj/Win32 obj/libi2pd obj/libi2pd_client obj/daemon
 | 
			
		||||
        make USE_UPNP=yes DEBUG=no USE_GIT_VERSION=yes USE_WINXP_FLAGS=yes -j3
 | 
			
		||||
 | 
			
		||||
    - name: Upload artifacts
 | 
			
		||||
      uses: actions/upload-artifact@v2
 | 
			
		||||
      uses: actions/upload-artifact@v3
 | 
			
		||||
      with:
 | 
			
		||||
        name: i2pd-xp.exe
 | 
			
		||||
        path: i2pd.exe
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										25
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										25
									
								
								.github/workflows/build.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -5,34 +5,43 @@ on: [push, pull_request]
 | 
			
		|||
jobs:
 | 
			
		||||
  build-make:
 | 
			
		||||
    name: Make with USE_UPNP=${{ matrix.with_upnp }}
 | 
			
		||||
    runs-on: ubuntu-18.04
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: true
 | 
			
		||||
      matrix:
 | 
			
		||||
        with_upnp: ['yes', 'no']
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
    - name: install packages
 | 
			
		||||
      run: |
 | 
			
		||||
        sudo add-apt-repository ppa:mhier/libboost-latest
 | 
			
		||||
        sudo apt-get update
 | 
			
		||||
        sudo apt-get install build-essential libboost1.74-dev libminiupnpc-dev libssl-dev zlib1g-dev
 | 
			
		||||
        sudo apt-get install build-essential libboost-all-dev libminiupnpc-dev libssl-dev zlib1g-dev
 | 
			
		||||
 | 
			
		||||
    - name: build application
 | 
			
		||||
      run: make USE_UPNP=${{ matrix.with_upnp }} -j3
 | 
			
		||||
 | 
			
		||||
  build-cmake:
 | 
			
		||||
    name: CMake with -DWITH_UPNP=${{ matrix.with_upnp }}
 | 
			
		||||
    runs-on: ubuntu-18.04
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      fail-fast: true
 | 
			
		||||
      matrix:
 | 
			
		||||
        with_upnp: ['ON', 'OFF']
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
    - name: install packages
 | 
			
		||||
      run: |
 | 
			
		||||
        sudo add-apt-repository ppa:mhier/libboost-latest
 | 
			
		||||
        sudo apt-get update
 | 
			
		||||
        sudo apt-get install build-essential cmake libboost1.74-dev libminiupnpc-dev libssl-dev zlib1g-dev
 | 
			
		||||
        sudo apt-get install build-essential cmake libboost-all-dev libminiupnpc-dev libssl-dev zlib1g-dev
 | 
			
		||||
 | 
			
		||||
    - name: build application
 | 
			
		||||
      run: |
 | 
			
		||||
        cd build
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										155
									
								
								.github/workflows/docker.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										155
									
								
								.github/workflows/docker.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -10,6 +10,7 @@ on:
 | 
			
		|||
 | 
			
		||||
jobs:
 | 
			
		||||
  build:
 | 
			
		||||
    name: Building container for ${{ matrix.platform }}
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions:
 | 
			
		||||
      packages: write
 | 
			
		||||
| 
						 | 
				
			
			@ -25,42 +26,44 @@ jobs:
 | 
			
		|||
        ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Set up QEMU
 | 
			
		||||
        uses: docker/setup-qemu-action@v2
 | 
			
		||||
    - name: Set up QEMU
 | 
			
		||||
      uses: docker/setup-qemu-action@v2
 | 
			
		||||
 | 
			
		||||
      - name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v2
 | 
			
		||||
    - name: Set up Docker Buildx
 | 
			
		||||
      uses: docker/setup-buildx-action@v2
 | 
			
		||||
 | 
			
		||||
      - name: Login to DockerHub
 | 
			
		||||
        uses: docker/login-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
    - name: Login to DockerHub
 | 
			
		||||
      uses: docker/login-action@v2
 | 
			
		||||
      with:
 | 
			
		||||
        username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
        password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Login to GitHub Container registry
 | 
			
		||||
        uses: docker/login-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          registry: ghcr.io
 | 
			
		||||
          username: ${{ github.actor }}
 | 
			
		||||
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
    - name: Login to GitHub Container registry
 | 
			
		||||
      uses: docker/login-action@v2
 | 
			
		||||
      with:
 | 
			
		||||
        registry: ghcr.io
 | 
			
		||||
        username: ${{ github.actor }}
 | 
			
		||||
        password: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Build container for ${{ matrix.archname }}
 | 
			
		||||
        uses: docker/build-push-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          context: ./contrib/docker
 | 
			
		||||
          file: ./contrib/docker/Dockerfile
 | 
			
		||||
          platforms: ${{ matrix.platform }}
 | 
			
		||||
          push: true
 | 
			
		||||
          tags: |
 | 
			
		||||
            purplei2p/i2pd:latest-${{ matrix.archname }}
 | 
			
		||||
            ghcr.io/purplei2p/i2pd:latest-${{ matrix.archname }}
 | 
			
		||||
          provenance: false
 | 
			
		||||
    - name: Build container for ${{ matrix.archname }}
 | 
			
		||||
      uses: docker/build-push-action@v3
 | 
			
		||||
      with:
 | 
			
		||||
        context: ./contrib/docker
 | 
			
		||||
        file: ./contrib/docker/Dockerfile
 | 
			
		||||
        platforms: ${{ matrix.platform }}
 | 
			
		||||
        push: true
 | 
			
		||||
        tags: |
 | 
			
		||||
          purplei2p/i2pd:latest-${{ matrix.archname }}
 | 
			
		||||
          ghcr.io/purplei2p/i2pd:latest-${{ matrix.archname }}
 | 
			
		||||
        provenance: false
 | 
			
		||||
 | 
			
		||||
  push:
 | 
			
		||||
    name: Pushing merged manifest
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
 | 
			
		||||
    permissions:
 | 
			
		||||
      packages: write
 | 
			
		||||
      contents: read
 | 
			
		||||
| 
						 | 
				
			
			@ -68,60 +71,60 @@ jobs:
 | 
			
		|||
    needs: build
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
    - name: Checkout
 | 
			
		||||
      uses: actions/checkout@v3
 | 
			
		||||
 | 
			
		||||
      - name: Set up QEMU
 | 
			
		||||
        uses: docker/setup-qemu-action@v2
 | 
			
		||||
    - name: Set up QEMU
 | 
			
		||||
      uses: docker/setup-qemu-action@v2
 | 
			
		||||
 | 
			
		||||
      - name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v2
 | 
			
		||||
    - name: Set up Docker Buildx
 | 
			
		||||
      uses: docker/setup-buildx-action@v2
 | 
			
		||||
 | 
			
		||||
      - name: Login to DockerHub
 | 
			
		||||
        uses: docker/login-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
    - name: Login to DockerHub
 | 
			
		||||
      uses: docker/login-action@v2
 | 
			
		||||
      with:
 | 
			
		||||
        username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
        password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Login to GitHub Container registry
 | 
			
		||||
        uses: docker/login-action@v2
 | 
			
		||||
        with:
 | 
			
		||||
          registry: ghcr.io
 | 
			
		||||
          username: ${{ github.actor }}
 | 
			
		||||
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
    - name: Login to GitHub Container registry
 | 
			
		||||
      uses: docker/login-action@v2
 | 
			
		||||
      with:
 | 
			
		||||
        registry: ghcr.io
 | 
			
		||||
        username: ${{ github.actor }}
 | 
			
		||||
        password: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Create and push latest manifest image to Docker Hub
 | 
			
		||||
        if: ${{ !startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          inputs: purplei2p/i2pd:latest
 | 
			
		||||
          images: purplei2p/i2pd:latest-amd64,purplei2p/i2pd:latest-i386,purplei2p/i2pd:latest-arm64,purplei2p/i2pd:latest-armv7
 | 
			
		||||
          push: true
 | 
			
		||||
    - name: Create and push latest manifest image to Docker Hub
 | 
			
		||||
      if: ${{ !startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
      uses: Noelware/docker-manifest-action@master
 | 
			
		||||
      with:
 | 
			
		||||
        inputs: purplei2p/i2pd:latest
 | 
			
		||||
        images: purplei2p/i2pd:latest-amd64,purplei2p/i2pd:latest-i386,purplei2p/i2pd:latest-arm64,purplei2p/i2pd:latest-armv7
 | 
			
		||||
        push: true
 | 
			
		||||
 | 
			
		||||
      - name: Create and push latest manifest image to GHCR
 | 
			
		||||
        if: ${{ !startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          inputs: ghcr.io/purplei2p/i2pd:latest
 | 
			
		||||
          images: ghcr.io/purplei2p/i2pd:latest-amd64,ghcr.io/purplei2p/i2pd:latest-i386,ghcr.io/purplei2p/i2pd:latest-arm64,ghcr.io/purplei2p/i2pd:latest-armv7
 | 
			
		||||
          push: true
 | 
			
		||||
    - name: Create and push latest manifest image to GHCR
 | 
			
		||||
      if: ${{ !startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
      uses: Noelware/docker-manifest-action@master
 | 
			
		||||
      with:
 | 
			
		||||
        inputs: ghcr.io/purplei2p/i2pd:latest
 | 
			
		||||
        images: ghcr.io/purplei2p/i2pd:latest-amd64,ghcr.io/purplei2p/i2pd:latest-i386,ghcr.io/purplei2p/i2pd:latest-arm64,ghcr.io/purplei2p/i2pd:latest-armv7
 | 
			
		||||
        push: true
 | 
			
		||||
 | 
			
		||||
      - name: Store release version to env
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV
 | 
			
		||||
    - name: Store release version to env
 | 
			
		||||
      if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
      run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV
 | 
			
		||||
 | 
			
		||||
      - name: Create and push release manifest to Docker Hub
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          inputs: purplei2p/i2pd:latest,purplei2p/i2pd:latest-release,purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
          images: purplei2p/i2pd:latest-amd64,purplei2p/i2pd:latest-i386,purplei2p/i2pd:latest-arm64,purplei2p/i2pd:latest-armv7
 | 
			
		||||
          push: true
 | 
			
		||||
    - name: Create and push release manifest to Docker Hub
 | 
			
		||||
      if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
      uses: Noelware/docker-manifest-action@master
 | 
			
		||||
      with:
 | 
			
		||||
        inputs: purplei2p/i2pd:latest,purplei2p/i2pd:latest-release,purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
        images: purplei2p/i2pd:latest-amd64,purplei2p/i2pd:latest-i386,purplei2p/i2pd:latest-arm64,purplei2p/i2pd:latest-armv7
 | 
			
		||||
        push: true
 | 
			
		||||
 | 
			
		||||
      - name: Create and push release manifest to GHCR
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          inputs: ghcr.io/purplei2p/i2pd:latest,ghcr.io/purplei2p/i2pd:latest-release,ghcr.io/purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
          images: ghcr.io/purplei2p/i2pd:latest-amd64,ghcr.io/purplei2p/i2pd:latest-i386,ghcr.io/purplei2p/i2pd:latest-arm64,ghcr.io/purplei2p/i2pd:latest-armv7
 | 
			
		||||
          push: true
 | 
			
		||||
    - name: Create and push release manifest to GHCR
 | 
			
		||||
      if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
      uses: Noelware/docker-manifest-action@master
 | 
			
		||||
      with:
 | 
			
		||||
        inputs: ghcr.io/purplei2p/i2pd:latest,ghcr.io/purplei2p/i2pd:latest-release,ghcr.io/purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
        images: ghcr.io/purplei2p/i2pd:latest-amd64,ghcr.io/purplei2p/i2pd:latest-i386,ghcr.io/purplei2p/i2pd:latest-arm64,ghcr.io/purplei2p/i2pd:latest-armv7
 | 
			
		||||
        push: true
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue