]> git.immae.eu Git - github/bastienwirtz/homer.git/commitdiff
Simplified & updated CI/CD
authorBastien Wirtz <bastien.wirtz@gmail.com>
Sun, 12 Jun 2022 14:15:54 +0000 (16:15 +0200)
committerBastien Wirtz <bastien.wirtz@gmail.com>
Sun, 12 Jun 2022 14:15:54 +0000 (16:15 +0200)
.github/workflows/dockerhub.yml [new file with mode: 0644]
.github/workflows/integration.yml
.github/workflows/release.yml
Dockerfile.arm32v7 [deleted file]
Dockerfile.arm64v8 [deleted file]
hooks/post_push [deleted file]
hooks/pre_build [deleted file]

diff --git a/.github/workflows/dockerhub.yml b/.github/workflows/dockerhub.yml
new file mode 100644 (file)
index 0000000..68e3d67
--- /dev/null
@@ -0,0 +1,44 @@
+# Build & publish docker images
+name: Dockerhub
+
+on:
+  push:
+    tags: [v*]
+    branches: [ main ]
+
+
+jobs:
+  dockerhub:
+    runs-on: ubuntu-latest
+    steps:
+      -
+        name: Checkout
+        uses: actions/checkout@v3
+      -
+        name: Set up QEMU
+        uses: docker/setup-qemu-action@v2
+      -
+        name: Set up Docker Buildx
+        id: buildx
+        uses: docker/setup-buildx-action@v2
+      -
+        name: Login to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          username: ${{ secrets.DOCKERHUB_USERNAME }}
+          password: ${{ secrets.DOCKERHUB_TOKEN }}
+      - 
+        name: Set tag name
+        run: |
+          if [[ ${{ github.ref_type }} == "tag" ]]; then
+            echo "IMAGE_TAG=${{ github.ref_name }}" >> $GITHUB_ENV  
+          else
+            echo "IMAGE_TAG=latest" >> $GITHUB_ENV  
+          fi
+      -
+        name: Build and push
+        uses: docker/build-push-action@v3
+        with:
+          push: true
+          tags: b4bz/buildx-test:${{env.IMAGE_TAG}}
+          platforms: linux/amd64,linux/arm/v7,linux/arm64
\ No newline at end of file
index 8d1a7ad0712b8055dbfbc81a73a29076b9f09780..257f7582e47c237d6134b549ef3ebc591b4c7416 100644 (file)
@@ -20,7 +20,7 @@ jobs:
         # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
 
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Use Node.js ${{ matrix.node-version }}
       uses: actions/setup-node@v2
       with:
index 886556dce5540640cd500fdbe3e47e765eeb79ca..62c15a84b2e73ec35c151a724ef2d30d649c86b1 100644 (file)
@@ -10,7 +10,7 @@ jobs:
     name: Upload Release Asset
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v2
+      - uses: actions/checkout@v3
       - name: Build project
         run: |
           yarn install
@@ -20,21 +20,9 @@ jobs:
         run: zip -r ../homer.zip ./*
       - name: Create Release
         id: create_release
-        uses: actions/create-release@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        uses: softprops/action-gh-release@v1
         with:
-          tag_name: ${{ github.ref }}
-          release_name: Release ${{ github.ref }}
-          draft: false
-          prerelease: false
-      - name: Upload Release Asset
-        id: upload-release-asset
-        uses: actions/upload-release-asset@v1
-        env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-        with:
-          upload_url: ${{ steps.create_release.outputs.upload_url }}
-          asset_path: ./homer.zip
-          asset_name: homer.zip
-          asset_content_type: application/zip
+          token: ${{ secrets.GITHUB_TOKEN }}
+          generate_release_notes: true
+          files: |
+            homer.zip
\ No newline at end of file
diff --git a/Dockerfile.arm32v7 b/Dockerfile.arm32v7
deleted file mode 100644 (file)
index 270d7b5..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-# build stage
-FROM node:lts-alpine as build-stage
-
-WORKDIR /app
-
-COPY package*.json ./
-RUN yarn install --frozen-lockfile
-
-COPY . .
-RUN yarn build
-
-# Multi arch build support
-FROM alpine as qemu
-
-ARG QEMU_VERSION="v4.2.0-7"
-
-RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-arm-static && chmod +x qemu-arm-static
-
-# production stage
-FROM arm32v7/alpine:3.16
-
-COPY --from=qemu qemu-arm-static /usr/bin/
-
-ENV GID 1000
-ENV UID 1000
-ENV PORT 8080
-ENV SUBFOLDER "/_"
-ENV INIT_ASSETS 1
-
-RUN addgroup -S lighttpd -g ${GID} && adduser -D -S -u ${UID} lighttpd lighttpd && \
-    apk add -U --no-cache lighttpd && \
-    rm /usr/bin/qemu-arm-static
-
-WORKDIR /www
-
-COPY lighttpd.conf /lighttpd.conf
-COPY entrypoint.sh /entrypoint.sh
-COPY --from=build-stage --chown=${UID}:${GID} /app/dist /www/
-COPY --from=build-stage --chown=${UID}:${GID} /app/dist/assets /www/default-assets
-
-USER ${UID}:${GID}
-
-HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
-    CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:${PORT}/ || exit 1
-
-EXPOSE ${PORT}
-VOLUME /www/assets
-
-CMD ["lighttpd", "-D", "-f", "/lighttpd.conf"]
diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8
deleted file mode 100644 (file)
index f940bde..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-# build stage
-FROM node:lts-alpine as build-stage
-
-WORKDIR /app
-
-COPY package*.json ./
-RUN yarn install --frozen-lockfile
-
-COPY . .
-RUN yarn build
-
-# Multi arch build support
-FROM alpine as qemu
-
-ARG QEMU_VERSION="v4.2.0-7"
-
-RUN wget https://github.com/multiarch/qemu-user-static/releases/download/${QEMU_VERSION}/qemu-aarch64-static && chmod +x qemu-aarch64-static
-
-# production stage
-FROM arm64v8/alpine:3.16
-
-COPY --from=qemu qemu-aarch64-static /usr/bin/
-
-ENV GID 1000
-ENV UID 1000
-ENV PORT 8080
-ENV SUBFOLDER "/_"
-ENV INIT_ASSETS 1
-
-RUN addgroup -S lighttpd -g ${GID} && adduser -D -S -u ${UID} lighttpd lighttpd && \
-    apk add -U --no-cache lighttpd && \
-    rm /usr/bin/qemu-aarch64-static
-
-WORKDIR /www
-
-COPY lighttpd.conf /lighttpd.conf
-COPY entrypoint.sh /entrypoint.sh
-COPY --from=build-stage --chown=${UID}:${GID} /app/dist /www/
-COPY --from=build-stage --chown=${UID}:${GID} /app/dist/assets /www/default-assets
-
-USER ${UID}:${GID}
-
-HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
-    CMD wget --no-verbose --tries=1 --spider http://127.0.0.1:${PORT}/ || exit 1
-
-EXPOSE ${PORT}
-VOLUME /www/assets
-
-CMD ["lighttpd", "-D", "-f", "/lighttpd.conf"]
diff --git a/hooks/post_push b/hooks/post_push
deleted file mode 100644 (file)
index 3d4830d..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-IFS='-' read -r TAG string <<< "$DOCKER_TAG"
-
-docker manifest create b4bz/homer:$TAG b4bz/homer:$TAG-amd64 b4bz/homer:$TAG-arm32v7 b4bz/homer:$TAG-arm64v8
-docker manifest annotate b4bz/homer:$TAG b4bz/homer:$TAG-arm32v7 --os linux --arch arm
-docker manifest annotate b4bz/homer:$TAG b4bz/homer:$TAG-arm64v8 --os linux --arch arm64 --variant v8
-docker manifest push --purge b4bz/homer:$TAG
diff --git a/hooks/pre_build b/hooks/pre_build
deleted file mode 100644 (file)
index bc1b6fe..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/bash
-
-# Update to docker-ee 18.x for manifests
-apt-get -y update
-apt-get -y --only-upgrade install docker-ee
-# Register qemu-*-static for all supported processors except the
-# current one, but also remove all registered binfmt_misc before
-docker run --rm --privileged multiarch/qemu-user-static:register --reset
\ No newline at end of file