React Release #1
Workflow file for this run
This file contains hidden or 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
| on: | |
| release: | |
| types: [released] | |
| name: React Release | |
| jobs: | |
| build: | |
| name: Upload Release Asset | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: 8.2 | |
| extensions: mysql, mysqlnd, sqlite3, bcmath, gd, curl, zip, openssl, mbstring, xml | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: v5-develop | |
| fetch-depth: 1 | |
| - name: Install composer dependencies | |
| run: | | |
| composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }} | |
| composer install --no-dev -o | |
| - name: Set current date to variable | |
| id: set_date | |
| run: echo "current_date=$(date '+%Y-%m-%d')" >> $GITHUB_ENV | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '22' | |
| - name: Prepare React FrontEnd | |
| run: | | |
| git clone https://${{secrets.commit_secret}}@github.com/invoiceninja/ui.git | |
| cd ui | |
| git checkout develop | |
| sed -i 's/VITE_IS_TEST=true/VITE_IS_TEST=false/' .env.example | |
| echo VITE_PUSHER_APP_KEY=f0111a02782708da651f >> .env.example | |
| cp .env.example .env | |
| cp ../vite.config.ts.react ./vite.config.js | |
| sed -i '/"version"/c\ "version": " Latest Build - ${{ env.current_date }}",' package.json | |
| npm i | |
| npm run build | |
| cp -r dist/* ../public/ | |
| mv ../public/index.html ../resources/views/react/index.blade.php | |
| - name: Prepare JS/CSS assets | |
| run: | | |
| npm i | |
| npm run production | |
| - name: Cleanup Builds | |
| run: | | |
| rm -rf node_modules | |
| rm -rf .git | |
| rm .env || true | |
| rm -rf ui || true | |
| # Set permissions: directories 755, files 644 | |
| find . -path ./vendor -prune -o -type f -exec chmod 644 {} \+ | |
| find . -path ./vendor -prune -o -type d -exec chmod 755 {} \+ | |
| - name: Build project | |
| run: | | |
| shopt -s dotglob | |
| tar --exclude='public/storage' --exclude='invoiceninja.zip' -zcvf /home/runner/work/invoiceninja/invoiceninja.tar * | |
| tar --exclude='public/storage' --exclude='invoiceninja.zip' -zcvf /home/runner/work/invoiceninja/invoiceninja.tar.gz * | |
| - name: Release | |
| uses: softprops/action-gh-release@v1 | |
| if: startsWith(github.ref, 'refs/tags/') | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| files: | | |
| /home/runner/work/invoiceninja/invoiceninja.tar | |
| /home/runner/work/invoiceninja/invoiceninja.tar.gz |