mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-18 00:53:10 +01:00
84 lines
2.7 KiB
YAML
84 lines
2.7 KiB
YAML
on:
|
|
release:
|
|
types: [released]
|
|
|
|
name: Upload Release Asset
|
|
|
|
jobs:
|
|
build:
|
|
name: Upload Release Asset
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Setup PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: 7.4
|
|
extensions: mysql, mysqlnd, sqlite3, bcmath, gd, curl, zip, openssl, mbstring, xml
|
|
|
|
- name: Checkout code
|
|
uses: actions/checkout@v1
|
|
with:
|
|
ref: v5-stable
|
|
|
|
- name: Copy .env file
|
|
run: |
|
|
cp .env.example .env
|
|
|
|
- name: Install composer dependencies
|
|
run: |
|
|
composer config -g github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
|
|
composer install --no-dev
|
|
|
|
- name: Prepare Laravel Application
|
|
run: |
|
|
cp .env.example .env
|
|
php artisan key:generate
|
|
php artisan optimize
|
|
php artisan storage:link
|
|
sudo php artisan cache:clear
|
|
sudo find ./vendor/bin/ -type f -exec chmod +x {} \;
|
|
sudo find ./ -type d -exec chmod 755 {} \;
|
|
|
|
- name: Prepare JS/CSS assets
|
|
run: |
|
|
npm i
|
|
npm run production
|
|
|
|
- name: Cleanup Builds
|
|
run: |
|
|
sudo rm -rf bootstrap/cache/*
|
|
sudo rm -rf node_modules
|
|
- name: Prune Git History
|
|
run: |
|
|
sudo git gc
|
|
sudo git gc --aggressive
|
|
sudo git prune
|
|
- name: Build project # This would actually build your project, using zip for an example artifact
|
|
run: |
|
|
zip -r ./invoiceninja.zip .* -x "../*"
|
|
|
|
- name: Get tag name
|
|
id: get_tag_name
|
|
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}-release
|
|
|
|
- name: Create Release
|
|
id: create_release
|
|
uses: actions/create-release@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
tag_name: ${{ steps.get_tag_name.outputs.VERSION }}
|
|
release_name: Release ${{ steps.get_tag_name.outputs.VERSION }}
|
|
draft: false
|
|
prerelease: false
|
|
- name: Upload Release Asset
|
|
id: upload-release-asset
|
|
uses: actions/upload-release-asset@v1
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
with:
|
|
upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
|
|
asset_path: ./invoiceninja.zip
|
|
asset_name: invoiceninja.zip
|
|
asset_content_type: application/zip
|