Compare commits

...

2 Commits

Author SHA1 Message Date
59de1d3b6a stop acting 2024-09-22 23:12:51 +05:00
56ffe2c3d1 added docker build files
Some checks failed
Tests / PHP ${{ matrix.php }} (8.1) (push) Has been cancelled
Tests / PHP ${{ matrix.php }} (8.2) (push) Has been cancelled
2024-09-22 23:11:43 +05:00
11 changed files with 148 additions and 186 deletions

49
.build/ci-helper Executable file
View File

@@ -0,0 +1,49 @@
#!/bin/bash
cd "$(dirname "${BASH_SOURCE[0]}")"
if [ "$CI" = "true" ]; then
echo "Running in CI environment, skipping variable fetching..."
else
# Remove 'git@gitlab.com:' and '.git' and Extract namespace and project name
GIT_REMOTE_URL=$(git config --get remote.origin.url)
GITLAB_PATH=$(echo "$GIT_REMOTE_URL" | sed -e 's/^git@git.shihaam.dev://' -e 's/\.git$//')
CI_PROJECT_NAMESPACE=$(echo "$GITLAB_PATH" | awk -F/ '{OFS="/"; $NF=""; print $0}' | sed 's:/$::')
CI_PROJECT_NAME=$(basename "$GITLAB_PATH")
# Set the registry image path
CI_REGISTRY_IMAGE="git.shihaam.dev/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME"
# Other variables
CI_COMMIT_SHORT_SHA=$(git rev-parse HEAD | cut -c1-8)
CI_COMMIT_SHA=$(git rev-parse HEAD)
CI_COMMIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
fi
CI_COMMIT_BRANCH=$(echo $CI_COMMIT_BRANCH | sed 's/\//-/g') # sanitize branch name
export CI_COMMIT_SHORT_SHA
export CI_COMMIT_SHA
export CI_COMMIT_BRANCH
export CI_REGISTRY_IMAGE
echo "Commit hash: $CI_COMMIT_SHA"
echo "Branch: $CI_COMMIT_BRANCH"
echo "Registry image: $CI_REGISTRY_IMAGE"
if [ "$1" = "push" ]; then
docker compose push
if [[ "$CI_COMMIT_BRANCH" == "master" || "$CI_COMMIT_BRANCH" == "main" ]]; then
docker tag $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/fpm:latest
docker tag $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/nginx:latest
docker push $CI_REGISTRY_IMAGE/fpm:latest
docker push $CI_REGISTRY_IMAGE/nginx:latest
elif [[ "$CI_COMMIT_BRANCH" == "staging" ]]; then
docker tag $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/fpm:staging
docker tag $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA $CI_REGISTRY_IMAGE/nginx:staging
docker push $CI_REGISTRY_IMAGE/fpm:staging
docker push $CI_REGISTRY_IMAGE/nginx:staging
fi
else
docker compose $@
fi

21
.build/compose.yml Normal file
View File

@@ -0,0 +1,21 @@
services:
fpm:
build:
context: ../
dockerfile: .build/fpm.Dockerfile
args:
CI_COMMIT_SHORT_SHA: ${CI_COMMIT_SHORT_SHA}
CI_COMMIT_SHA: ${CI_COMMIT_SHA}
CI_COMMIT_BRANCH: ${CI_COMMIT_BRANCH}
hostname: fpm
image: $CI_REGISTRY_IMAGE/fpm:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
nginx:
build:
context: .
dockerfile: nginx.Dockerfile
args:
CI_COMMIT_SHORT_SHA: ${CI_COMMIT_SHORT_SHA}
CI_COMMIT_SHA: ${CI_COMMIT_SHA}
CI_COMMIT_BRANCH: ${CI_COMMIT_BRANCH}
hostname: nginx
image: $CI_REGISTRY_IMAGE/nginx:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA

36
.build/fpm.Dockerfile Normal file
View File

@@ -0,0 +1,36 @@
FROM composer:2.7.9 AS composer
FROM git.shihaam.dev/dockerfiles/php-fpm:8.2 AS composerinstall
WORKDIR /var/www/html
COPY .. /var/www/html
COPY --from=composer /usr/bin/composer /usr/bin/composer
RUN --mount=type=cache,target=/root/.composer/cache \
composer install --no-interaction --no-dev --optimize-autoloader
FROM git.shihaam.dev/dockerfiles/php-fpm:8.2
# Use bash as the default shell
SHELL ["/bin/bash", "-c"]
WORKDIR /var/www/html
COPY --from=composerinstall /var/www/html /var/www/html/
# Set the git envs
ARG CI_COMMIT_SHORT_SHA
ARG CI_COMMIT_SHA
ARG CI_COMMIT_BRANCH
ENV CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA
ENV CI_COMMIT_SHA=$CI_COMMIT_SHA
ENV CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH
RUN chown -R www-data:www-data storage/ \
&& chmod -R ug+rw storage \
&& chmod -R ug+x storage/framework storage/logs \
&& chmod -R ug+rw bootstrap/cache \
&& chmod -R ug+x bootstrap/cache
RUN php artisan storage:link
# expose public dir for nginx to serve static files
VOLUME /var/www/html/public

10
.build/nginx.Dockerfile Normal file
View File

@@ -0,0 +1,10 @@
FROM git.shihaam.dev/dockerfiles/nginx-fpm:latest
# Set the git envs
ARG CI_COMMIT_SHORT_SHA
ARG CI_COMMIT_SHA
ARG CI_COMMIT_BRANCH
ENV CI_COMMIT_SHORT_SHA=$CI_COMMIT_SHORT_SHA
ENV CI_COMMIT_SHA=$CI_COMMIT_SHA
ENV CI_COMMIT_BRANCH=$CI_COMMIT_BRANCH

1
.github/FUNDING.yml vendored
View File

@@ -1 +0,0 @@
patreon: akaunting

View File

@@ -1,21 +0,0 @@
Please, submit only real issues. Use the forum for support, feature requests, proposals, new versions, help etc. https://akaunting.com/forum
### Steps to reproduce the issue
### Expected result
### Actual result
### System information (Akaunting, PHP versions)
### Additional comments

View File

@@ -1,63 +0,0 @@
name: Bug report
description: File a bug report related to Akaunting
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: akaunting
attributes:
label: Akaunting version
description: "Please provide the full Akaunting version of your installation."
placeholder: "2.1.20"
validations:
required: true
- type: input
id: php
attributes:
label: PHP version
description: "Please provide the full PHP version that is powering Akaunting."
placeholder: "7.4.10"
validations:
required: true
- type: input
id: os
attributes:
label: Operating system
description: "Which operating system do you use? Please provide the version as well."
placeholder: "Ubuntu 20.04"
validations:
required: true
- type: textarea
id: steps
attributes:
label: Steps to reproduce
description: Which steps do we need to take to reproduce this error?
validations:
required: true
- type: textarea
id: expected
attributes:
label: Expected result
description: What is the expected result?
validations:
required: true
- type: textarea
id: actual
attributes:
label: Actual result
description: What is the actual result?
validations:
required: true
- type: textarea
id: comments
attributes:
label: Additional comments
description: Anything else we should know about?
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Copy and paste any relevant log output. No need for backticks.
render: shell

View File

@@ -1,11 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: Feature request
url: https://akaunting.com/forum
about: 'For ideas or feature requests, start a new discussion'
- name: Support, help, and other
url: https://akaunting.com/support
about: 'This repository is only for reporting bugs'
- name: Documentation
url: https://github.com/akaunting/docs
about: For documentation improvements, open a pull request at the akaunting/docs repository

View File

@@ -1,51 +0,0 @@
name: Tests
on:
push:
pull_request:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
tests:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
strategy:
matrix:
php: ['8.1', '8.2']
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Cache Composer
uses: actions/cache@v1
with:
path: ~/.composer/cache/files
key: php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
extensions: bcmath, ctype, dom, fileinfo, intl, gd, json, mbstring, pdo, pdo_sqlite, openssl, sqlite, xml, zip
coverage: none
- name: Copy .env
run: cp .env.testing .env
- name: Install NPM
run: npm install
- name: Compile assets
run: npm run production
- name: Install Composer
run: composer test
- name: Execute tests
run: php artisan test --parallel

View File

@@ -1,39 +0,0 @@
name: Translations
on:
schedule:
- cron: '0 0 * * *'
workflow_dispatch:
jobs:
sync:
name: Sync
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Sync with Crowdin
uses: crowdin/github-action@master
with:
upload_sources: true
upload_translations: true
download_translations: true
skip_untranslated_files: true
source: 'resources/lang/en-GB/*.php'
translation: 'resources/lang/%locale%/%original_file_name%'
localization_branch_name: 'translations'
commit_message: 'new crowdin translations'
pull_request_title: 'New Crowdin translations'
pull_request_body: 'https://crowdin.com/project/akaunting'
pull_request_labels: 'Translation'
project_id: ${{ secrets.CROWDIN_CORE_ID }}
token: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

32
compose.yml Normal file
View File

@@ -0,0 +1,32 @@
services:
fpm:
hostname: fpm
image: git.shihaam.dev/shihaam/akaunting/fpm
volumes:
- ./:/var/www/html/
nginx:
hostname: nginx
image: git.shihaam.dev/shihaam/akaunting/nginx
volumes_from:
- fpm
ports:
- 9000:80
# composer:
# hostname: composer
# image: composer:2.7.9
# volumes:
# - ./:/var/www/html/
# working_dir: /var/www/html
mariadb:
image: mariadb:11.5.2
hostname: mariadb
restart: always
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_USER=user
- MYSQL_PASSWORD=password
- MYSQL_DATABASE=database
volumes:
- db:/var/lib/mysql
volumes:
db: