name: Build containers on: push: branches: - openssl - docker tags: - '*' jobs: 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 - name: Set up QEMU uses: docker/setup-qemu-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 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 }} 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@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 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 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: Create and push release manifest image to Docker Hub if: ${{ startsWith(github.ref, 'refs/tags/') }} uses: Noelware/docker-manifest-action@master with: base-image: purplei2p/i2pd:latest-release extra-images: purplei2p/i2pd:HTTP/1.1 200 OK Date: Wed, 23 Jul 2025 07:25:51 GMT Cache-Control: public, max-age=21600, no-transform Last-Modified: Tue, 11 Oct 2022 23:30:53 GMT X-Frame-Options: SAMEORIGIN Access-Control-Expose-Headers: Content-Disposition Content-Type: text/plain; charset=utf-8 X-Content-Type-Options: nosniff Connection: close Content-Length: 4829 Etag: "899a7eec6e7feb060df7574cd59d7a51503e32f6" Content-Disposition: inline; filename="docker.yml"; filename*=UTF-8''docker.yml Set-Cookie: i_like_gitea=051acb7236b1805e; Path=/; HttpOnly; Secure; SameSite=Lax Set-Cookie: _csrf=sLPmq5wK3LEerY9CttDkJ5ollcw6MTc1MzI1NTU1MTQzMDM0NzA4Mg; Path=/; Max-Age=86400; HttpOnly; Secure; SameSite=Lax X-Cache-Status: HIT X-Cache-Age: 0 name: Build containers on: push: branches: - openssl - docker tags: - '*' jobs: 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 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-