Translations update from Hosted Weblate #4526
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Mbin Workflow | |
on: | |
pull_request: | |
branches: | |
- main | |
- develop | |
- dev/new_features | |
push: | |
branches: | |
- main | |
- dev/new_features | |
tags: | |
- 'v*' | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: | |
image: danger89/mbin-pipeline:1.2.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get NPM cache directory path | |
id: npm-cache-dir-path | |
run: echo "dir=$(npm get cache)" >> $GITHUB_OUTPUT | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
id: npm-cache | |
with: | |
path: ${{ steps.npm-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: ${{ runner.os }}-npm- | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-no-dev-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer-no-dev- | |
- run: cp .env.example .env | |
- name: Composer install | |
run: composer install --no-dev --no-progress | |
- name: NPM install | |
run: npm ci --include=dev | |
env: | |
NODE_ENV: production | |
- name: Build frontend (production) | |
run: npm run build | |
unit-test: | |
runs-on: ubuntu-latest | |
container: | |
image: danger89/mbin-pipeline:1.2.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- run: cp .env.example .env | |
- name: Composer install | |
run: composer install --no-scripts --no-progress | |
- name: Run unit tests | |
env: | |
COMPOSER_CACHE_DIR: ${{ steps.composer-cache.outputs.dir }} | |
SYMFONY_DEPRECATIONS_HELPER: disabled | |
run: php bin/phpunit tests/Unit | |
audit-check: | |
runs-on: ubuntu-latest | |
container: | |
image: danger89/mbin-pipeline:1.2.0 | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Composer cache directory | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- name: Cache vendor directory | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer- | |
- run: cp .env.example .env | |
- name: Composer install | |
run: composer install --no-scripts --no-progress | |
- name: Run Npm audit | |
run: npm audit --omit=dev | |
- name: Run Composer audit | |
env: | |
COMPOSER_AUDIT_ABANDONED: ignore | |
run: composer audit | |
fixer-dry-run: | |
runs-on: ubuntu-latest | |
container: | |
image: danger89/mbin-pipeline:1.2.0 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Composer Cache Directory | |
id: composer-cache | |
run: | | |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v4 | |
with: | |
path: ${{ steps.composer-cache.outputs.dir }} | |
key: ${{ runner.os }}-composer-tools-${{ hashFiles('**/composer.lock') }} | |
restore-keys: ${{ runner.os }}-composer-tools- | |
- name: Composer tools install | |
run: composer -d tools install --no-scripts --no-progress | |
- name: php-cs-fixer dry-run | |
run: tools/vendor/bin/php-cs-fixer fix --dry-run -v --show-progress=none #--format=checkstyle #would be nice if codeberg did something with this like github does. | |
build-and-publish-docker-image: | |
runs-on: ubuntu-latest | |
# Let's only run this on branches and tagged releases only | |
# Because the Docker build takes quite some time. | |
if: github.event_name != 'pull_request' | |
permissions: | |
contents: write | |
packages: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Login to ghcr | |
if: github.event_name != 'pull_request' | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Docker meta data | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: ghcr.io/mbinorg/mbin | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ./docker/Dockerfile | |
push: ${{ github.event_name != 'pull_request' }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
# TODO: Integration tests |