name: Generate release packages on: release: types: [published] jobs: release: name: Create release runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Setup PHP, with composer and extensions uses: shivammathur/setup-php@v2 with: tools: pecl, composer:v1 - name: Retrieve version id: release run: echo "::set-output name=version::$(cat VERSION)" - name: Validate composer.json and composer.lock run: composer validate - name: Get composer cache directory id: composercache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: Cache dependencies uses: actions/cache@v2 with: path: ${{ steps.composercache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: Install dependencies run: composer install --no-dev --optimize-autoloader - name: Create artifact id: artifact run: | ARTIFACT="friendica-full-${{ steps.release.outputs.version }}.tar.gz" echo "::set-output name=name::${ARTIFACT}" mkdir build tar -cvjf build/${ARTIFACT} -T mods/release-list.txt - name: SHA256 id: sha256 run: | cd build ARTIFACT=${{ steps.artifact.outputs.name }} sha256sum "${ARTIFACT}" > "${ARTIFACT}.sha256" - name: Upload artifact uses: actions/upload-artifact@v2 with: name: friendica path: build/ - name: Upload to release uses: softprops/action-gh-release@v1 with: files: | build/${{ steps.artifact.outputs.name }}.tar.gz build/${{ steps.artifact.outputs.name }}.tar.gz.sha256 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}