From 1b00c1fd62ea3bc83f8c8bbc1d9d8823a0f3a134 Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 16 Apr 2024 04:52:49 +0000 Subject: [PATCH 01/12] CI-Pipe Action --- .github/workflows/docker-image.yml | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/docker-image.yml diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml new file mode 100644 index 000000000..09b5d728b --- /dev/null +++ b/.github/workflows/docker-image.yml @@ -0,0 +1,32 @@ +name: Wavelog Image CI DEV + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v4 + - name: 'Login to GitHub Container Registry' + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: ${{github.actor}} + password: ${{secrets.GITHUB_TOKEN}} + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY_IMAGE }} + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: ghcr.io/int2001/wavelog:dev From 2fb9660b1802b335aa95e46af2a7882d1026eeaa Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 16 Apr 2024 04:53:05 +0000 Subject: [PATCH 02/12] Dockerfile --- Dockerfile | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..d64ca26b4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,52 @@ +FROM php:8.3-apache +RUN touch /usr/local/etc/php/conf.d/uploads.ini \ +&& echo "file_uploads = On" >> /usr/local/etc/php/conf.d/uploads.ini \ +&& echo "memory_limit = 256M" >> /usr/local/etc/php/conf.d/uploads.ini \ +&& echo "upload_max_filesize = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \ +&& echo "post_max_size = 64M" >> /usr/local/etc/php/conf.d/uploads.ini \ +&& echo "max_execution_time = 600" >> /usr/local/etc/php/conf.d/uploads.ini +RUN apt-get update \ +&& apt-get install -y curl libxml2-dev libonig-dev libzip-dev cron \ +&& docker-php-ext-install mysqli mbstring xml zip +RUN a2enmod rewrite + +WORKDIR /var/www/html +RUN curl -L https://api.github.com/repos/wavelog/wavelog/tarball/dev | tar -xz --strip=1 +RUN chown -R www-data:www-data /var/www/html + +RUN mkdir ./userdata +RUN mkdir ./application/config/docker +RUN mv ./.htaccess.sample ./.htaccess +RUN echo "Setting www-data as owner of the html folder" \ +&& chown -R www-data:www-data /var/www/html +RUN echo "Setting permissions to the install folder" \ +&& cd /var/www/html \ +&& chmod -R g+rw ./application/config/ \ +&& chmod -R g+rw ./application/logs/ \ +&& chmod -R g+rw ./assets/qslcard/ \ +&& chmod -R g+rw ./backup/ \ +&& chmod -R g+rw ./updates/ \ +&& chmod -R g+rw ./uploads/ \ +&& chmod -R g+rw ./userdata/ \ +&& chmod -R g+rw ./images/eqsl_card_images/ \ +&& chmod -R g+rw ./assets/ \ +&& chmod -R g+rw ./application/config/docker/ \ +&& chmod -R 777 /var/www/html/install +RUN echo "Installing cronjobs" \ +RUN touch /etc/crontab && \ + echo "0 */12 * * * curl --silent http://localhost/clublog/upload &>/dev/null" >> /etc/crontab && \ + echo "10 */12 * * * curl --silent http://localhost/eqsl/sync &>/dev/null" >> /etc/crontab && \ + echo "20 */12 * * * curl --silent http://localhost/qrz/upload &>/dev/null" >> /etc/crontab && \ + echo "30 */12 * * * curl --silent http://localhost/qrz/download &>/dev/null" >> /etc/crontab && \ + echo "40 */12 * * * curl --silent http://localhost/hrdlog/upload &>/dev/null" >> /etc/crontab && \ + echo "0 1 * * * curl --silent http://localhost/lotw/lotw_upload &>/dev/null" >> /etc/crontab && \ + echo "10 1 * * * curl --silent http://localhost/update/lotw_users &>/dev/null" >> /etc/crontab && \ + echo "20 1 * * 1 curl --silent http://localhost/update/update_clublog_scp &>/dev/null" >> /etc/crontab && \ + echo "0 2 1 */1 * curl --silent http://localhost/update/update_sota &>/dev/null" >> /etc/crontab && \ + echo "10 2 1 */1 * curl --silent http://localhost/update/update_wwff &>/dev/null" >> /etc/crontab && \ + echo "20 2 1 */1 * curl --silent http://localhost/update/update_pota &>/dev/null" >> /etc/crontab && \ + echo "0 3 1 */1 * curl --silent http://localhost/update/update_dok &>/dev/null" >> /etc/crontab +RUN chmod 0644 /etc/crontab +RUN crontab Date: Tue, 16 Apr 2024 07:02:58 +0200 Subject: [PATCH 03/12] Update docker-image.yml --- .github/workflows/docker-image.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 09b5d728b..9c0b537a3 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,5 +1,7 @@ name: Wavelog Image CI DEV +on: workflow_dispatch + jobs: build: runs-on: ubuntu-latest From f64a4e314b54ac731f8a288273e65ee25db83695 Mon Sep 17 00:00:00 2001 From: "Joerg (DJ7NT)" Date: Tue, 16 Apr 2024 07:08:43 +0200 Subject: [PATCH 04/12] Update docker-image.yml --- .github/workflows/docker-image.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 9c0b537a3..27e5ca3d6 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,6 +1,7 @@ name: Wavelog Image CI DEV -on: workflow_dispatch +on: + workflow_dispatch: jobs: build: From ba8ba50a39e2e45d4e52297634dd060154298607 Mon Sep 17 00:00:00 2001 From: "Joerg (DJ7NT)" Date: Tue, 16 Apr 2024 07:25:26 +0200 Subject: [PATCH 05/12] Update docker-image.yml --- .github/workflows/docker-image.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 27e5ca3d6..622c2c1a7 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,7 +1,9 @@ name: Wavelog Image CI DEV -on: - workflow_dispatch: +on: + push: + branches: + - 'CI_Pipe' jobs: build: From a671b94e6d923ef8ff29e32102c5ba095927cea8 Mon Sep 17 00:00:00 2001 From: "Joerg (DJ7NT)" Date: Tue, 16 Apr 2024 07:29:48 +0200 Subject: [PATCH 06/12] Update docker-image.yml --- .github/workflows/docker-image.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 622c2c1a7..891aef093 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -4,6 +4,7 @@ on: push: branches: - 'CI_Pipe' + workflow_dispatch: jobs: build: From f120b7cbf2638722da66af0c3c88eb6172f2656c Mon Sep 17 00:00:00 2001 From: "Joerg (DJ7NT)" Date: Tue, 16 Apr 2024 08:11:24 +0200 Subject: [PATCH 07/12] User Branch as Tag (with master-rule) --- .github/workflows/docker-image.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 891aef093..009562f39 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -33,6 +33,6 @@ jobs: uses: docker/build-push-action@v5 with: context: . - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ghcr.io/int2001/wavelog:dev + tags: ghcr.io/int2001/wavelog:${{ github.ref_name == 'master' && 'latest' || github.ref_name }} From 388d4bfafa3b5e8a8282c370be4ead7a956ce8ca Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 16 Apr 2024 06:15:59 +0000 Subject: [PATCH 08/12] Preset ENV to docker for dockerfile --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index d64ca26b4..7600bd91d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,7 @@ RUN apt-get update \ && apt-get install -y curl libxml2-dev libonig-dev libzip-dev cron \ && docker-php-ext-install mysqli mbstring xml zip RUN a2enmod rewrite +ENV CI_ENV=docker WORKDIR /var/www/html RUN curl -L https://api.github.com/repos/wavelog/wavelog/tarball/dev | tar -xz --strip=1 From 5233bcbf21c6c8fb703379a918a5e1caff3c5e4a Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 16 Apr 2024 06:37:54 +0000 Subject: [PATCH 09/12] Build from tree instead of refetching everything --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7600bd91d..4954815e7 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,8 +11,8 @@ RUN apt-get update \ RUN a2enmod rewrite ENV CI_ENV=docker +COPY ./ /var/www/html/ WORKDIR /var/www/html -RUN curl -L https://api.github.com/repos/wavelog/wavelog/tarball/dev | tar -xz --strip=1 RUN chown -R www-data:www-data /var/www/html RUN mkdir ./userdata From 2878ee41665cdc68e1e3dd9eb9f1cb45a1b63e21 Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 16 Apr 2024 07:10:47 +0000 Subject: [PATCH 10/12] Added dockerignore --- .dockerignore | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..4588567e0 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +Dockerfile +.git +.github From d6b536c35675b5164615b4222bc0eea7204d0ab5 Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 16 Apr 2024 07:11:50 +0000 Subject: [PATCH 11/12] Trigger on master-push --- .github/workflows/docker-image.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 009562f39..47305c212 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -3,7 +3,7 @@ name: Wavelog Image CI DEV on: push: branches: - - 'CI_Pipe' + - 'master' workflow_dispatch: jobs: From 5c9287f68d7309a1f34a08db56f6ecf3665f91b7 Mon Sep 17 00:00:00 2001 From: "Joerg (DJ7NT)" Date: Tue, 16 Apr 2024 09:50:10 +0200 Subject: [PATCH 12/12] Produce new x-image on new release (or on demand) --- .github/workflows/docker-image.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/docker-image.yml b/.github/workflows/docker-image.yml index 47305c212..6e69f0aab 100644 --- a/.github/workflows/docker-image.yml +++ b/.github/workflows/docker-image.yml @@ -1,9 +1,8 @@ -name: Wavelog Image CI DEV +name: Wavelog create Dockerimage and publish it on: - push: - branches: - - 'master' + release: + types: [published] workflow_dispatch: jobs: @@ -35,4 +34,4 @@ jobs: context: . platforms: linux/amd64,linux/arm64,linux/arm/v7 push: true - tags: ghcr.io/int2001/wavelog:${{ github.ref_name == 'master' && 'latest' || github.ref_name }} + tags: ghcr.io/wavelog/wavelog:${{ github.ref_name == 'master' && 'latest' || github.ref_name }}