Skip to content

Try a move

Try a move #46

name: Release Workflow
on: [push]
jobs:
release-management:
runs-on: ubuntu-latest
steps:
# Step 1: Checkout the code
- name: Checkout Code
uses: actions/checkout@v3
with:
ref: ${{ github.head_ref }} # Checkout the correct branch name
fetch-depth: 0 # Fetch the whole repo history
# Documentation: https://github.com/actions/checkout
# Explanation: This step checks out the source code from the GitHub repository, ensuring that the workflow has access to the latest version of the code.
# Step 2: Install PHP extensions
- name: Set up PHP and install extensions
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: zip, gd
# Documentation: https://github.com/shivammathur/setup-php
# Explanation: This step sets up PHP 7.4 and installs the required extensions (`zip` and `gd`) that are necessary for your Composer dependencies.
# Step 3: Install Node.js dependencies using npm
- name: Install npm dependencies
uses: actions/setup-node@v3
with:
node-version: '18.x' # Specify Node.js version
# Documentation: https://github.com/actions/setup-node
# Explanation: This step sets up a Node.js environment and installs the project's dependencies listed in the `package.json` file using npm.
- run: npm install
# Documentation: https://docs.npmjs.com/cli/v7/commands/npm-install
# Explanation: This step runs `npm install` to install the Node.js dependencies required for the project.
# Step 4: Install PHP dependencies using Composer
- name: Install Composer dependencies
run: composer install --no-progress --no-interaction --prefer-dist --ignore-platform-req=ext-zip --ignore-platform-req=ext-gd
env:
COMPOSER_ROOT_VERSION: 2.7.7
# Documentation: https://getcomposer.org/doc/03-cli.md#install
# Explanation: This step runs `composer install` to install the PHP dependencies required for the project. It also ignores platform requirements for `ext-zip` and `ext-gd` to avoid issues if extensions are not detected correctly in the environment.
# Step 5: Generate Git version information
- name: Git Version
id: version
uses: codacy/[email protected]
with:
release-branch: main
# Documentation: https://github.com/marketplace/actions/git-version
# Explanation: This step calculates the version of the software based on the Git tags and branch information, storing the result in the `version` output.
# Step 6: Extract repository description
- name: Extract repository description
id: repo-description
run: |
description=$(jq -r '.description' <(curl -s https://api.github.com/repos/${{ github.repository }}))
echo "REPO_DESCRIPTION=$description" >> $GITHUB_ENV
# Documentation: https://docs.github.com/en/rest/reference/repos#get-a-repository
# Explanation: This step retrieves the description of the GitHub repository using the GitHub API and stores it in the environment variables.
# Step 7: Run Changelog CI
- name: Run Changelog CI
uses: saadmk11/[email protected]
with:
release_version: ${{ steps.version.outputs.version }}
config_file: changelog-ci-config.json
# Documentation: https://github.com/saadmk11/changelog-ci
# Explanation: This step generates a changelog for the current release using the Changelog CI tool.
# Step 8: Output the version
- name: Use the version
run: |
echo ${{ steps.version.outputs.version }}
# Explanation: This step outputs the calculated version number to the console for reference.
# Step 9: Output the version
- name: Copy the packadge files into the packadge
run: |
mkdir -p packadge/opencatalogi
mv -r \
README.md \
CHANGELOG.md \
LICENSE.md \
appinfo \
css \
docs \
img \
js \
lib \
node_modules \
src \
templates \
vendor \
packadge/opencatalogi/
#Step 2: Create the .tar.gz archive
- name: Create ZIP
run: |
zip -r opencatalogi.zip /packadge
- name: Create Tarball
run: |
tar -czf opencatalogi.tar.gz /packadge
# Step 10: Create a new release on GitHub
- name: Upload Release
uses: ncipollo/[email protected]
with:
# bodyFile: 'opencatalogi/changelog.md'
artifacts: |
LICENSE.md
opencatalogi.zip
opencatalogi.tar.gz
token: ${{ secrets.GITHUB_TOKEN }}
tag: ${{ steps.version.outputs.version }}
# Documentation: https://github.com/ncipollo/release-action
# Explanation: This step creates a new release on GitHub, uploading the generated release files, and tagging the release with the calculated version.