From 300a4f713bb0345dc813a965608337e7a1daa541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20=C5=A0ediv=C3=BD?= Date: Sun, 15 Jan 2023 19:21:35 +0100 Subject: [PATCH] new workflows. --- .github/workflows/tags-arm.yml | 124 +++++++++++++++++++++++++++++++ .github/workflows/tags-intel.yml | 20 +++++ .github/workflows/tags.yml | 41 +++++----- 3 files changed, 166 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/tags-arm.yml create mode 100644 .github/workflows/tags-intel.yml diff --git a/.github/workflows/tags-arm.yml b/.github/workflows/tags-arm.yml new file mode 100644 index 00000000..9358c3c9 --- /dev/null +++ b/.github/workflows/tags-arm.yml @@ -0,0 +1,124 @@ +name: "ARM build and push" + +on: + push: + tags: + - 'v*' + +env: + REGISTRY: ghcr.io + IMAGE_NAME: m1k1o/neko + TAG_PREFIX: arm- + BASE_DOCKERFILE: Dockerfile.arm + PLATFORMS: linux/arm64,linux/arm/v7 + +jobs: + build-base: + runs-on: ubuntu-latest + # + # do not run on forks + # + if: github.repository_owner == 'm1k1o' + 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: Extract metadata (tags, labels) for Docker + uses: docker/metadata-action@v3 + id: meta + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}//${{ env.TAG_PREFIX }}base + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + type=sha,format=long + - + name: Log in to the Container registry + uses: docker/login-action@v1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GHCR_ACCESS_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v2 + with: + context: ./ + file: .docker/base/${{ env.BASE_DOCKERFILE }} + platforms: ${{ env.PLATFORMS }} + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + + build: + runs-on: ubuntu-latest + # + # do not run on forks + # + if: github.repository_owner == 'm1k1o' + needs: [ build-base ] + strategy: + # Will build all images even if some fail. + matrix: + include: + - tag: firefox + dockerfile: Dockerfile.arm + - tag: chromium + dockerfile: Dockerfile.arm + - tag: ungoogled-chromium + dockerfile: Dockerfile + - tag: tor-browser + dockerfile: Dockerfile + - tag: vlc + dockerfile: Dockerfile + - tag: xfce + dockerfile: Dockerfile + env: + TAG_NAME: ${{ matrix.tag }} + DOCKERFILE: ${{ matrix.dockerfile }} + 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: Extract metadata (tags, labels) for Docker + uses: docker/metadata-action@v3 + id: meta + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.TAG_PREFIX }}${{ env.TAG_NAME }} + tags: | + type=semver,pattern={{version}} + type=semver,pattern={{major}}.{{minor}} + type=semver,pattern={{major}} + - + name: Log in to the Container registry + uses: docker/login-action@v1 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GHCR_ACCESS_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v2 + with: + context: .docker/${{ env.TAG_NAME }} + platforms: ${{ env.PLATFORMS }} + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + build-args: | + BASE_IMAGE=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}//${{ env.TAG_PREFIX }}base:sha-${{ github.sha }} diff --git a/.github/workflows/tags-intel.yml b/.github/workflows/tags-intel.yml new file mode 100644 index 00000000..743cd8ed --- /dev/null +++ b/.github/workflows/tags-intel.yml @@ -0,0 +1,20 @@ +name: "AMD build for tags" + +on: + push: + tags: + - 'v*' + +env: + REGISTRY: ghcr.io + IMAGE_NAME: m1k1o/neko + TAG_PREFIX: intel- + BASE_DOCKERFILE: Dockerfile.intel + PLATFORMS: linux/amd64 + +jobs: + build-base: + uses: ./.github/workflows/tags.yml@build-base + + build: + uses: ./.github/workflows/tags.yml@build diff --git a/.github/workflows/tags.yml b/.github/workflows/tags.yml index 0040942a..1d666818 100644 --- a/.github/workflows/tags.yml +++ b/.github/workflows/tags.yml @@ -1,4 +1,4 @@ -name: "CI for version tags" +name: "AMD build for tags" on: push: @@ -8,6 +8,9 @@ on: env: REGISTRY: ghcr.io IMAGE_NAME: m1k1o/neko + TAG_PREFIX: "" + BASE_DOCKERFILE: Dockerfile + PLATFORMS: linux/amd64 jobs: build-base: @@ -31,7 +34,7 @@ jobs: uses: docker/metadata-action@v3 id: meta with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/base + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}//${{ env.TAG_PREFIX }}base tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -49,8 +52,8 @@ jobs: uses: docker/build-push-action@v2 with: context: ./ - file: .docker/base/Dockerfile - platforms: linux/amd64,linux/arm64 + file: .docker/base/${{ env.BASE_DOCKERFILE }} + platforms: ${{ env.PLATFORMS }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} @@ -67,32 +70,32 @@ jobs: matrix: include: - tag: firefox - platforms: linux/amd64,linux/arm64 + dockerfile: Dockerfile - tag: chromium - platforms: linux/amd64,linux/arm64 + dockerfile: Dockerfile - tag: google-chrome - platforms: linux/amd64 + dockerfile: Dockerfile - tag: ungoogled-chromium - platforms: linux/amd64,linux/arm64 + dockerfile: Dockerfile - tag: microsoft-edge - platforms: linux/amd64 + dockerfile: Dockerfile - tag: brave - platforms: linux/amd64 + dockerfile: Dockerfile - tag: vivaldi - platforms: linux/amd64 + dockerfile: Dockerfile - tag: opera - platforms: linux/amd64 + dockerfile: Dockerfile - tag: tor-browser - platforms: linux/amd64,linux/arm64 + dockerfile: Dockerfile - tag: remmina - platforms: linux/amd64 + dockerfile: Dockerfile - tag: vlc - platforms: linux/amd64,linux/arm64 + dockerfile: Dockerfile - tag: xfce - platforms: linux/amd64,linux/arm64 + dockerfile: Dockerfile env: TAG_NAME: ${{ matrix.tag }} - PLATFORMS: ${{ matrix.platforms }} + DOCKERFILE: ${{ matrix.dockerfile }} steps: - name: Checkout @@ -108,7 +111,7 @@ jobs: uses: docker/metadata-action@v3 id: meta with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.TAG_NAME }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/${{ env.TAG_PREFIX }}${{ env.TAG_NAME }} tags: | type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} @@ -130,4 +133,4 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} build-args: | - BASE_IMAGE=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}/base:sha-${{ github.sha }} + BASE_IMAGE=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}//${{ env.TAG_PREFIX }}base:sha-${{ github.sha }}