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