push@gradle : no comment #3
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
# Sample workflow for building and deploying a Hugo site to GitHub Pages and triggering a Cordova build | |
name: Deploy Hugo site to Pages and Build Cordova APK | |
on: | |
# Runs on pushes targeting the gradle branch | |
push: | |
branches: ["gradle"] | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. | |
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. | |
concurrency: | |
group: "pages" | |
cancel-in-progress: false | |
# Default to bash | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
# Build job | |
build: | |
runs-on: ubuntu-latest | |
env: | |
HUGO_VERSION: 0.85.0 | |
steps: | |
- name: Install Android SDK if not already installed | |
run: | | |
if [ ! -d "$HOME/android-sdk/platform-tools" ]; then | |
echo "Installing Android SDK..." | |
mkdir -p $HOME/android-sdk | |
wget -q https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip -O sdk-tools.zip | |
unzip -q sdk-tools.zip -d $HOME/android-sdk | |
yes | $HOME/android-sdk/cmdline-tools/bin/sdkmanager --sdk_root=$HOME/android-sdk --install "platforms;android-30" "build-tools;30.0.3" "platform-tools" | |
else | |
echo "Android SDK already installed, skipping installation." | |
fi | |
- name: Install Hugo CLI | |
run: | | |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.deb \ | |
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb | |
- name: Install Dart Sass | |
run: sudo snap install dart-sass | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Setup Pages | |
id: pages | |
uses: actions/configure-pages@v5 | |
- name: Install Node.js dependencies | |
run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" | |
- name: Build with Hugo | |
env: | |
HUGO_CACHEDIR: ${{ runner.temp }}/hugo_cache | |
HUGO_ENVIRONMENT: production | |
run: | | |
hugo \ | |
--minify \ | |
--baseURL "${{ steps.pages.outputs.base_url }}/" | |
- name: Upload artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: ./public | |
# Cordova build job | |
cordova_build: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout Code | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: '18' | |
- name: Install Cordova | |
run: npm install -g cordova | |
- name: Initialize Cordova Project | |
run: | | |
cordova create cordova-app com.example.app MyApp | |
- name: Copy Hugo 'public' to Cordova 'www' | |
run: | | |
rm -rf cordova-app/www/* | |
cp -r public/* cordova-app/www | |
- name: Add Android Platform | |
run: | | |
cd cordova-app | |
cordova platform add android --android-sdk $HOME/android-sdk | |
- name: Build Cordova Android App | |
run: | | |
cd cordova-app | |
cordova build android --release | |
- name: Upload APK | |
uses: actions/upload-artifact@v3 | |
with: | |
name: MyApp-release.apk | |
path: cordova-app/platforms/android/app/build/outputs/apk/release/app-release.apk | |
# Deployment job | |
deploy: | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |