|
|
@ -4,16 +4,26 @@ on: |
|
|
|
push: |
|
|
|
push: |
|
|
|
branches: |
|
|
|
branches: |
|
|
|
- openssl |
|
|
|
- openssl |
|
|
|
|
|
|
|
- docker |
|
|
|
tags: |
|
|
|
tags: |
|
|
|
- '*' |
|
|
|
- '*' |
|
|
|
|
|
|
|
|
|
|
|
jobs: |
|
|
|
jobs: |
|
|
|
docker: |
|
|
|
build: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
runs-on: ubuntu-latest |
|
|
|
permissions: |
|
|
|
permissions: |
|
|
|
packages: write |
|
|
|
packages: write |
|
|
|
contents: read |
|
|
|
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: |
|
|
|
steps: |
|
|
|
- name: Checkout |
|
|
|
- name: Checkout |
|
|
|
uses: actions/checkout@v2 |
|
|
|
uses: actions/checkout@v2 |
|
|
@ -25,46 +35,106 @@ jobs: |
|
|
|
uses: docker/setup-buildx-action@v1 |
|
|
|
uses: docker/setup-buildx-action@v1 |
|
|
|
|
|
|
|
|
|
|
|
- name: Login to DockerHub |
|
|
|
- name: Login to DockerHub |
|
|
|
uses: docker/login-action@v1 |
|
|
|
uses: docker/login-action@v1 |
|
|
|
with: |
|
|
|
with: |
|
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }} |
|
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }} |
|
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }} |
|
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }} |
|
|
|
|
|
|
|
|
|
|
|
- name: Login to GitHub Container registry |
|
|
|
- name: Login to GitHub Container registry |
|
|
|
uses: docker/login-action@v1 |
|
|
|
uses: docker/login-action@v1 |
|
|
|
with: |
|
|
|
with: |
|
|
|
registry: ghcr.io |
|
|
|
registry: ghcr.io |
|
|
|
username: ${{ github.actor }} |
|
|
|
username: ${{ github.actor }} |
|
|
|
password: ${{ secrets.GITHUB_TOKEN }} |
|
|
|
password: ${{ secrets.GITHUB_TOKEN }} |
|
|
|
|
|
|
|
|
|
|
|
- name: Build and push trunk container |
|
|
|
- name: Build container for ${{ matrix.archname }} |
|
|
|
if: ${{ !startsWith(github.ref, 'refs/tags/') }} |
|
|
|
uses: docker/build-push-action@v3 |
|
|
|
uses: docker/build-push-action@v2 |
|
|
|
|
|
|
|
with: |
|
|
|
with: |
|
|
|
context: ./contrib/docker |
|
|
|
context: ./contrib/docker |
|
|
|
file: ./contrib/docker/Dockerfile |
|
|
|
file: ./contrib/docker/Dockerfile |
|
|
|
platforms: linux/amd64,linux/386,linux/arm64,linux/arm/v7 |
|
|
|
platforms: ${{ matrix.platform }} |
|
|
|
push: true |
|
|
|
push: true |
|
|
|
tags: | |
|
|
|
tags: | |
|
|
|
purplei2p/i2pd:latest |
|
|
|
purplei2p/i2pd:latest-${{ matrix.archname }} |
|
|
|
ghcr.io/purplei2p/i2pd:latest |
|
|
|
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@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: Set env |
|
|
|
- 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/') }} |
|
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') }} |
|
|
|
run: echo "RELEASE_VERSION=${GITHUB_REF:10}" >> $GITHUB_ENV |
|
|
|
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/') }} |
|
|
|
if: ${{ startsWith(github.ref, 'refs/tags/') }} |
|
|
|
uses: docker/build-push-action@v2 |
|
|
|
uses: Noelware/docker-manifest-action@master |
|
|
|
with: |
|
|
|
with: |
|
|
|
context: ./contrib/docker |
|
|
|
base-image: purplei2p/i2pd:latest-release |
|
|
|
file: ./contrib/docker/Dockerfile |
|
|
|
extra-images: purplei2p/i2pd:latest-amd64,purplei2p/i2pd:latest-i386,purplei2p/i2pd:latest-arm64,purplei2p/i2pd:latest-armv7 |
|
|
|
platforms: linux/amd64,linux/386,linux/arm64,linux/arm/v7 |
|
|
|
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 |
|
|
|
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 }} |
|
|
|
|
|
|
|