From 2003c8d1a1ee9f3cedc4da359bd9b2db57a77a01 Mon Sep 17 00:00:00 2001 From: Thomas Boerger Date: Tue, 5 Dec 2023 08:23:36 +0100 Subject: [PATCH] ci: add initial actions --- .github/workflows/docker.yml | 159 +++++++++++++++++++++++++++++++++++ .github/workflows/readme.yml | 39 +++++++++ 2 files changed, 198 insertions(+) create mode 100644 .github/workflows/docker.yml create mode 100644 .github/workflows/readme.yml diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..8ee4c37 --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,159 @@ +--- +name: latest + +"on": + push: + branches: + - master + paths: + - latest/* + - .github/workflows/docker.yml + pull_request: + branches: + - master + paths: + - latest/* + - .github/workflows/docker.yml + workflow_dispatch: + +jobs: + docker: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + id: source + uses: actions/checkout@v4 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + images: | + webhippie/vulcand + quay.io/webhippie/vulcand + ghcr.io/dockhippie/vulcand + labels: | + org.opencontainers.image.vendor=Webhippie + maintainer=Thomas Boerger + + - name: Setup QEMU + id: qemu + uses: docker/setup-qemu-action@v3 + + - name: Setup Buildx + id: buildx + uses: docker/setup-buildx-action@v3 + + - name: Hub login + id: login1 + uses: docker/login-action@v3 + if: github.event_name != 'pull_request' + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Quay login + id: login2 + uses: docker/login-action@v3 + if: github.event_name != 'pull_request' + with: + registry: quay.io + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + + - name: Ghcr login + id: login3 + uses: docker/login-action@v3 + if: github.event_name != 'pull_request' + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build amd64 + id: amd64 + uses: docker/build-push-action@v5 + with: + builder: ${{ steps.buildx.outputs.name }} + context: latest/ + provenance: false + file: latest/Dockerfile.amd64 + platforms: linux/amd64 + push: ${{ github.event_name != 'pull_request' }} + labels: ${{ steps.meta.outputs.labels }} + tags: | + webhippie/vulcand:latest-amd64 + quay.io/webhippie/vulcand:latest-amd64 + ghcr.io/dockhippie/vulcand:latest-amd64 + + - name: Build arm64 + id: arm64 + uses: docker/build-push-action@v5 + with: + builder: ${{ steps.buildx.outputs.name }} + context: latest/ + provenance: false + file: latest/Dockerfile.arm64 + platforms: linux/arm64 + push: ${{ github.event_name != 'pull_request' }} + labels: ${{ steps.meta.outputs.labels }} + tags: | + webhippie/vulcand:latest-arm64 + quay.io/webhippie/vulcand:latest-arm64 + ghcr.io/dockhippie/vulcand:latest-arm64 + + - name: Build arm + id: arm + uses: docker/build-push-action@v5 + with: + builder: ${{ steps.buildx.outputs.name }} + context: latest/ + provenance: false + file: latest/Dockerfile.arm + platforms: linux/arm/v6 + push: ${{ github.event_name != 'pull_request' }} + labels: ${{ steps.meta.outputs.labels }} + tags: | + webhippie/vulcand:latest-arm + quay.io/webhippie/vulcand:latest-arm + ghcr.io/dockhippie/vulcand:latest-arm + + - name: Hub manifest + id: manifest1 + uses: actionhippie/manifest@v1 + if: github.event_name != 'pull_request' + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + platforms: linux/amd64,linux/arm64,linux/arm/v6 + template: webhippie/vulcand:latest-ARCH + target: webhippie/vulcand:latest + ignore_missing: true + + - name: Quay manifest + id: manifest2 + uses: actionhippie/manifest@v1 + if: github.event_name != 'pull_request' + with: + username: ${{ secrets.QUAY_USERNAME }} + password: ${{ secrets.QUAY_PASSWORD }} + platforms: linux/amd64,linux/arm64,linux/arm/v6 + template: quay.io/webhippie/vulcand:latest-ARCH + target: quay.io/webhippie/vulcand:latest + ignore_missing: true + + - name: Ghcr manifest + id: manifest3 + uses: actionhippie/manifest@v1 + if: github.event_name != 'pull_request' + with: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + platforms: linux/amd64,linux/arm64,linux/arm/v6 + template: ghcr.io/dockhippie/vulcand:latest-ARCH + target: ghcr.io/dockhippie/vulcand:latest + ignore_missing: true + +... diff --git a/.github/workflows/readme.yml b/.github/workflows/readme.yml new file mode 100644 index 0000000..7a0e055 --- /dev/null +++ b/.github/workflows/readme.yml @@ -0,0 +1,39 @@ +--- +name: readme + +"on": + push: + branches: + - master + paths: + - README.md + workflow_dispatch: + +jobs: + readme: + runs-on: ubuntu-latest + + steps: + - name: Checkout source + uses: actions/checkout@v4 + + - name: Push readme + uses: actionhippie/pushrm@v1 + if: github.event_name != 'pull_request' + with: + provider: dockerhub + target: webhippie/vulcand + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + description: Docker image for vulcand + readme: README.md + + - name: Push readme + uses: actionhippie/pushrm@v1 + with: + provider: quay + target: quay.io/webhippie/vulcand + apikey: ${{ secrets.QUAY_APIKEY }} + readme: README.md + +...