diff --git a/.github/workflows/publish_docker.yaml b/.github/workflows/publish_docker.yaml new file mode 100644 index 000000000..c0ca75d09 --- /dev/null +++ b/.github/workflows/publish_docker.yaml @@ -0,0 +1,46 @@ +name: docker-publish-ghcr + +on: + workflow_dispatch: + push: + pull_request: + +permissions: + packages: write + +jobs: + docker_build_and_publish: + runs-on: ubuntu-22.04 + strategy: + fail-fast: false + matrix: + arch: [linux/amd64, linux/arm64, linux/arm64/v8] #, linux/386, linux/arm/v5, linux/arm/v7, linux/mips64le, linux/ppc64le, linux/s390x] + steps: + - name: "Checkout turnilo" + uses: actions/checkout@v4 + with: + path: turnilo + fetch-depth: 0 + fetch-tags: 1 + + - name: "Set up QEMU" + # Add support for more platforms with QEMU (optional) + # https://github.com/docker/setup-qemu-action + uses: docker/setup-qemu-action@v3 + + - name: "Set up Docker buildx" + uses: docker/setup-buildx-action@v3 + + - name: "Login to GitHub Container Registry (ghcr.io)" + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{github.actor}} + password: ${{secrets.GITHUB_TOKEN}} + + - name: "Build and push to ghcr" + run: | + #Cross-build + cd turnilo + export TAG=$(git describe HEAD | sed 's/-.*$//g') + docker buildx build --platform ${{ matrix.arch }} --push -f Dockerfile . --tag ghcr.io/${GITHUB_REPOSITORY}:${TAG}