109 lines
2.9 KiB
YAML
109 lines
2.9 KiB
YAML
name: MonarcAppFO releases
|
|
|
|
on:
|
|
push:
|
|
branches: [ 'master' ]
|
|
tags: [ 'v*.*', 'v*.*.*', 'v*.*.*-*' ]
|
|
pull_request:
|
|
branches: [ 'master' ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-20.04
|
|
|
|
strategy:
|
|
matrix:
|
|
node-version: [ "16.x" ]
|
|
php-version: [ "8.1" ]
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: install deps
|
|
run: sudo apt-get update && sudo apt install -y gettext
|
|
|
|
# PHP
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: ${{ matrix.php-version }}
|
|
tools: composer:v2.3
|
|
extensions: bcmath
|
|
|
|
- name: Validate composer.json and composer.lock
|
|
run: composer validate
|
|
|
|
- name: Install PHP dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest --no-dev --ignore-platform-req=php
|
|
|
|
- name: Symlink Monarc modules
|
|
run: |
|
|
mkdir -p module/Monarc
|
|
ln -s ../../vendor/monarc/core module/Monarc/Core
|
|
ln -s ../../vendor/monarc/frontoffice module/Monarc/FrontOffice
|
|
|
|
# javascript
|
|
- name: Use Node.js ${{ matrix.node-version }}
|
|
uses: actions/setup-node@v1
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
|
|
- uses: oprypin/find-latest-tag@v1
|
|
with:
|
|
repository: monarc-project/ng-anr
|
|
releases-only: true
|
|
id: ng_anr_lasttag
|
|
|
|
- run: echo "ng-anr is at version ${{ steps.ng_anr_lasttag.outputs.tag }}"
|
|
|
|
- name: Install ng-anr
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: monarc-project/ng-anr
|
|
ref: ${{ steps.ng_anr_lasttag.outputs.tag }}
|
|
path: './node_modules/ng_anr'
|
|
|
|
|
|
- uses: oprypin/find-latest-tag@v1
|
|
with:
|
|
repository: monarc-project/ng-client
|
|
releases-only: true
|
|
id: ng_client_lasttag
|
|
|
|
- run: echo "ng-client is at version ${{ steps.ng_client_lasttag.outputs.tag }}"
|
|
|
|
- name: Install ng-client
|
|
uses: actions/checkout@v3
|
|
with:
|
|
repository: monarc-project/ng-client
|
|
ref: ${{ steps.ng_client_lasttag.outputs.tag }}
|
|
path: './node_modules/ng_client'
|
|
|
|
- name: Install ng-client dependencies
|
|
run: |
|
|
cd node_modules/ng_client
|
|
npm ci
|
|
|
|
# final "cleanup"
|
|
- name: post job
|
|
run: |
|
|
bash -ex ./scripts/link_modules_resources.sh
|
|
bash -ex ./scripts/compile_translations.sh
|
|
|
|
# prepare release
|
|
- name: Get repository name
|
|
id: repository
|
|
run: echo "::set-output name=pathref::$(echo '${{ github.repository }}' | cut -d'/' -f2)-$(echo '${{ github.ref_name }}' | sed 's/[^[:alnum:]\.-]/_/g')"
|
|
|
|
- name: create artifact archive
|
|
run: |
|
|
tar --exclude .git --exclude .github -zcf '../${{ steps.repository.outputs.pathref }}.tar.gz' .
|
|
|
|
- name: release
|
|
uses: softprops/action-gh-release@v1
|
|
with:
|
|
files: |
|
|
../${{ steps.repository.outputs.pathref }}.tar.gz
|
|
fail_on_unmatched_files: true
|
|
if: startsWith(github.ref, 'refs/tags/')
|