This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Generated APK AAB (Upload - Create Artifact To Github Action & Release) | |
env: | |
main_project_module: app | |
playstore_name: V2PlusApp | |
on: | |
push: | |
branches: | |
- 'main' | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set executable permission for Gradle | |
run: chmod +x gradlew | |
- name: Set current date as env variable | |
run: echo "DATE_TODAY=$(date +'%Y-%m-%d')" >> $GITHUB_ENV | |
- name: Set repository name as env variable | |
run: echo "REPO_NAME=$(basename ${{ github.repository }})" >> $GITHUB_ENV | |
- name: Determine build version | |
run: | | |
BASE_TAG="v${{ env.DATE_TODAY }}" | |
EXISTING_VERSIONS=$(git tag --list "$BASE_TAG*") | |
if [[ -z "$EXISTING_VERSIONS" ]]; then | |
VERSION="${BASE_TAG}-v1" | |
else | |
LAST_VERSION=$(echo "$EXISTING_VERSIONS" | sort -V | tail -n 1 | grep -oP '\d+$') | |
NEXT_VERSION=$((LAST_VERSION + 1)) | |
VERSION="${BASE_TAG}-v$NEXT_VERSION" | |
fi | |
echo "VERSION=$VERSION" >> $GITHUB_ENV | |
echo "Final version: $VERSION" | |
- name: Set Up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: '17' | |
cache: 'gradle' | |
- name: Install Gradle | |
uses: gradle/gradle-build-action@v2 | |
with: | |
gradle-version: "8.9" | |
- name: Run Gradle Tests | |
run: ./gradlew test | |
- name: Build Gradle Project | |
run: ./gradlew build -x lint --continue | |
- name: Build APK Debug | |
run: ./gradlew assembleDebug | |
- name: Build APK Release | |
run: ./gradlew assemble | |
- name: Build AAB Release | |
run: ./gradlew ${{ env.main_project_module }}:bundleRelease | |
# آپلود خروجیها به عنوان Artifact برای دانلود از GitHub Actions | |
- name: Upload APK Debug as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: APK-Debug-${{ env.VERSION }} | |
path: ${{ env.main_project_module }}/build/outputs/apk/debug/*.apk | |
- name: Upload APK Release as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: APK-Release-${{ env.VERSION }} | |
path: ${{ env.main_project_module }}/build/outputs/apk/release/*.apk | |
- name: Upload AAB as Artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: AAB-Release-${{ env.VERSION }} | |
path: ${{ env.main_project_module }}/build/outputs/bundle/release/*.aab | |
# ایجاد نسخه جدید در Release GitHub با متن `Released by GitHub Actions` | |
- name: Create GitHub Release | |
id: create_release | |
uses: softprops/action-gh-release@v1 | |
with: | |
tag_name: ${{ env.VERSION }} | |
name: "Release - ${{ env.VERSION }}" | |
body: "### Released by GitHub Actions 🚀" | |
draft: false | |
prerelease: false | |
generate_release_notes: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |