From d663ff529a811e5ba55e0743ca10746e1e789a7e Mon Sep 17 00:00:00 2001 From: Philipp Date: Mon, 3 May 2021 20:15:37 +0200 Subject: [PATCH] Automatic release artifact generation --- .github/workflows/releases.yml | 66 ++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 .github/workflows/releases.yml diff --git a/.github/workflows/releases.yml b/.github/workflows/releases.yml new file mode 100644 index 0000000000..1a28578e98 --- /dev/null +++ b/.github/workflows/releases.yml @@ -0,0 +1,66 @@ +name: Generate release packages +on: [pull_request] +# 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" + echo "::set-output name=name::${ARTIFACT}.sha256" + + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: friendica + path: build/ + + # - name: Upload to release + # uses: JasonEtco/upload-to-release@master + # with: + # args: build/friendica-full-${{ steps.release.outputs.version }}.tar.gz application/zip + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file