mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	[gha] subsequent containers build (#1791)
This commit is contained in:
		
							parent
							
								
									549dcbee32
								
							
						
					
					
						commit
						3945f34e96
					
				
					 1 changed files with 92 additions and 22 deletions
				
			
		
							
								
								
									
										114
									
								
								.github/workflows/docker.yml
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										114
									
								
								.github/workflows/docker.yml
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -4,16 +4,26 @@ on:
 | 
			
		|||
  push:
 | 
			
		||||
    branches:
 | 
			
		||||
    - openssl
 | 
			
		||||
    - docker
 | 
			
		||||
    tags:
 | 
			
		||||
    - '*'
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  docker:
 | 
			
		||||
  build:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions:
 | 
			
		||||
      packages: write
 | 
			
		||||
      contents: read
 | 
			
		||||
 | 
			
		||||
    strategy:
 | 
			
		||||
      matrix:
 | 
			
		||||
        include: [
 | 
			
		||||
          { platform: 'linux/amd64', archname: 'amd64' },
 | 
			
		||||
          { platform: 'linux/386', archname: 'i386' },
 | 
			
		||||
          { platform: 'linux/arm64', archname: 'arm64' },
 | 
			
		||||
          { platform: 'linux/arm/v7', archname: 'armv7' },
 | 
			
		||||
        ]
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
| 
						 | 
				
			
			@ -25,46 +35,106 @@ jobs:
 | 
			
		|||
        uses: docker/setup-buildx-action@v1
 | 
			
		||||
 | 
			
		||||
      - name: Login to DockerHub
 | 
			
		||||
        uses: docker/login-action@v1 
 | 
			
		||||
        uses: docker/login-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Login to GitHub Container registry
 | 
			
		||||
        uses: docker/login-action@v1 
 | 
			
		||||
        uses: docker/login-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          registry: ghcr.io
 | 
			
		||||
          username: ${{ github.actor }}
 | 
			
		||||
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Build and push trunk container
 | 
			
		||||
        if: ${{ !startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: docker/build-push-action@v2
 | 
			
		||||
      - name: Build container for ${{ matrix.archname }}
 | 
			
		||||
        uses: docker/build-push-action@v3
 | 
			
		||||
        with:
 | 
			
		||||
          context: ./contrib/docker
 | 
			
		||||
          file: ./contrib/docker/Dockerfile
 | 
			
		||||
          platforms: linux/amd64,linux/386,linux/arm64,linux/arm/v7
 | 
			
		||||
          platforms: ${{ matrix.platform }}
 | 
			
		||||
          push: true
 | 
			
		||||
          tags: |
 | 
			
		||||
            purplei2p/i2pd:latest
 | 
			
		||||
            ghcr.io/purplei2p/i2pd:latest
 | 
			
		||||
            purplei2p/i2pd:latest-${{ matrix.archname }}
 | 
			
		||||
            ghcr.io/purplei2p/i2pd:latest-${{ matrix.archname }}
 | 
			
		||||
 | 
			
		||||
      - name: Set env
 | 
			
		||||
  push:
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    permissions:
 | 
			
		||||
      packages: write
 | 
			
		||||
      contents: read
 | 
			
		||||
 | 
			
		||||
    needs: build
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - name: Checkout
 | 
			
		||||
        uses: actions/checkout@v2
 | 
			
		||||
 | 
			
		||||
      - name: Set up QEMU
 | 
			
		||||
        uses: docker/setup-qemu-action@v1
 | 
			
		||||
 | 
			
		||||
      - name: Set up Docker Buildx
 | 
			
		||||
        uses: docker/setup-buildx-action@v1
 | 
			
		||||
 | 
			
		||||
      - name: Login to DockerHub
 | 
			
		||||
        uses: docker/login-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          username: ${{ secrets.DOCKERHUB_USERNAME }}
 | 
			
		||||
          password: ${{ secrets.DOCKERHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Login to GitHub Container registry
 | 
			
		||||
        uses: docker/login-action@v1
 | 
			
		||||
        with:
 | 
			
		||||
          registry: ghcr.io
 | 
			
		||||
          username: ${{ github.actor }}
 | 
			
		||||
          password: ${{ secrets.GITHUB_TOKEN }}
 | 
			
		||||
 | 
			
		||||
      - name: Create and push latest manifest image to Docker Hub
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          base-image: purplei2p/i2pd:latest
 | 
			
		||||
          extra-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
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          base-image: ghcr.io/purplei2p/i2pd:latest
 | 
			
		||||
          extra-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: Build and push release container
 | 
			
		||||
      - name: Create and push release manifest image to Docker Hub
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: docker/build-push-action@v2
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          context: ./contrib/docker
 | 
			
		||||
          file: ./contrib/docker/Dockerfile
 | 
			
		||||
          platforms: linux/amd64,linux/386,linux/arm64,linux/arm/v7
 | 
			
		||||
          base-image: purplei2p/i2pd:latest-release
 | 
			
		||||
          extra-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 image to GHCR
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          base-image: ghcr.io/purplei2p/i2pd:latest-release
 | 
			
		||||
          extra-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 versioned manifest image to Docker Hub
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          base-image: purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
          extra-images: purplei2p/i2pd:latest-amd64,purplei2p/i2pd:latest-i386,purplei2p/i2pd:latest-arm64,purplei2p/i2pd:latest-armv7
 | 
			
		||||
          push: true
 | 
			
		||||
 | 
			
		||||
      - name: Create and push versioned manifest image to GHCR
 | 
			
		||||
        if: ${{ startsWith(github.ref, 'refs/tags/') }}
 | 
			
		||||
        uses: Noelware/docker-manifest-action@master
 | 
			
		||||
        with:
 | 
			
		||||
          base-image: ghcr.io/purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
          extra-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
 | 
			
		||||
          tags: |
 | 
			
		||||
            purplei2p/i2pd:latest
 | 
			
		||||
            purplei2p/i2pd:latest-release
 | 
			
		||||
            purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
            ghcr.io/purplei2p/i2pd:latest
 | 
			
		||||
            ghcr.io/purplei2p/i2pd:latest-release
 | 
			
		||||
            ghcr.io/purplei2p/i2pd:release-${{ env.RELEASE_VERSION }}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue