**Release 110** #110
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
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node | |
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions | |
name: Release Cordova | |
on: | |
push: | |
branches: [ release ] | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
environment: release | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 16.x | |
cache: "yarn" | |
- name: 🧶 Yarn install | |
run: yarn ci | |
- name: 🔍Lint code | |
run: yarn lint | |
- name: 📚Read package.json | |
id: pkg | |
uses: jaywcjlove/[email protected] | |
- name: Set Version Number Variable | |
id: versionNumber | |
uses: actions/github-script@v6 | |
with: | |
result-encoding: string | |
script: | | |
return '${{ steps.pkg.outputs.version }}.${{ github.run_number }}' | |
- name: Set App ID Variable | |
id: appId | |
uses: actions/github-script@v6 | |
with: | |
result-encoding: string | |
script: | | |
return '${{ steps.pkg.outputs.name }}' | |
- name: ⬆ Update package.json version | |
uses: jossef/[email protected] | |
with: | |
file: package.json | |
field: version | |
value: ${{ steps.versionNumber.outputs.result }} | |
- name: ⬆ Update package.json app environment | |
uses: jossef/[email protected] | |
with: | |
file: package.json | |
field: name | |
value: ${{ steps.appId.outputs.result }} | |
- name: ⬆ Update package.json product name | |
uses: jossef/[email protected] | |
with: | |
file: package.json | |
field: productName | |
value: ${{ steps.pkg.outputs.productName }} | |
- name: 📦 Pack for 🕸web with Node.js | |
run: yarn pack:web | |
- name: 🐋 Build docker image | |
run: | | |
docker build -t ghcr.io/marmadilemanteater/freetubecordova:${{ steps.versionNumber.outputs.result }} . | |
docker build -t ghcr.io/marmadilemanteater/freetubecordova:latest . | |
- name: 🗝 Login to Github Container Registry | |
run: | | |
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u MarmadileManteater --password-stdin | |
- name: 📡 Push docker image to Github Container Registry | |
run: | | |
docker push ghcr.io/marmadilemanteater/freetubecordova:${{ steps.versionNumber.outputs.result }} | |
docker push ghcr.io/marmadilemanteater/freetubecordova:latest | |
- name: 📡 Upload PWA Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: freetube-${{ steps.versionNumber.outputs.result }}-PWA | |
path: dist/web | |
- name: 🚧 Setup Android SDK Tools | |
uses: android-actions/[email protected] | |
- name: ⬇ Download dependency `cordova-plugin-run-in-background` | |
run: | | |
git clone https://bitbucket.org/TheBosZ/cordova-plugin-run-in-background.git | |
sed -i 's@git+https://bitbucket.org/TheBosZ/cordova-plugin-run-in-background.git@../../cordova-plugin-run-in-background@g' ./src/cordova/package.js | |
- name: 📦 Pack for 📱Android with Node.js & Cordova | |
run: yarn pack:cordova | |
- name: 🦴 Fetch keystore from secrets | |
run: | | |
while read -r line; | |
do | |
echo "${line}" >> freetube.keystore.asc | |
done <<< '${{ secrets.KEYSTORE }}' | |
gpg -d --passphrase '${{ secrets.KEYSTORE_PASSWORD }}' --batch freetube.keystore.asc >> freetube.keystore | |
- name: 👷♀️ Build APK with Cordova with Node.js | |
run: yarn build:cordova freetube-${{ steps.versionNumber.outputs.result }}.apk ./freetube.keystore ${{ secrets.KEYSTORE_PASSWORD }} | |
- name: 📡 Upload Cordova APK Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: freetube-${{ steps.versionNumber.outputs.result }}-Android.apk | |
path: dist/freetube-${{ steps.versionNumber.outputs.result }}.apk | |
- name: 🔨 Setup Zip Action | |
uses: montudor/[email protected] | |
- name: 🤐 Zip output | |
run: zip -qq -r freetube-${{ steps.versionNumber.outputs.result }}.zip * | |
working-directory: dist/web/ | |
- name: Create release body | |
run: | | |
echo "${{ github.event.head_commit.message }}" >> release.txt | |
echo "" >> release.txt | |
- name: 📝 Create Draft Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ steps.versionNumber.outputs.result }} | |
release_name: ${{ steps.versionNumber.outputs.result }} | |
draft: true | |
prerelease: false | |
body_path: release.txt | |
- name: ⬆ Upload HTML5 Artifact to Release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: dist/web/freetube-${{ steps.versionNumber.outputs.result }}.zip | |
asset_name: freetube-${{ steps.versionNumber.outputs.result }}-pwa.zip | |
asset_content_type: application/zip | |
- name: ⬆ Upload Android APK Artifact to Release | |
uses: actions/[email protected] | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
upload_url: ${{ steps.create_release.outputs.upload_url }} | |
asset_path: dist/freetube-${{ steps.versionNumber.outputs.result }}.apk | |
asset_name: freetube-${{ steps.versionNumber.outputs.result }}-android.apk | |
asset_content_type: application/apk |