ci: update workflow actions #55
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: CI | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- "**.md" | |
pull_request: | |
paths-ignore: | |
- "**.md" | |
workflow_dispatch: | |
env: | |
NODE_VERSION: 20 | |
JAVA_VERSION: 11 | |
jobs: | |
build: | |
name: Build web assets | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm access token for GitHub registry | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Build web assets | |
run: npm run build | |
- name: Upload artifacts | |
if: github.ref == 'refs/heads/main' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: www | |
path: www | |
android: | |
if: ${{ false }} | |
name: Build Android platform | |
runs-on: ubuntu-latest | |
needs: [build] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: www | |
path: www | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm access token for GitHub registry | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Set up JDK ${{ env.JAVA_VERSION }} | |
uses: actions/setup-java@v1 | |
with: | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Copy web assets to native platform | |
run: npx ionic capacitor copy android --no-build | |
- name: Update native platform | |
run: npx ionic capacitor update android | |
- name: Build with Gradle | |
working-directory: android | |
run: ./gradlew build | |
ios: | |
if: ${{ false }} | |
name: Build iOS platform | |
runs-on: macos-latest | |
needs: [build] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: www | |
path: www | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm access token for GitHub registry | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Copy web assets to native platform | |
run: npx ionic capacitor copy ios --no-build | |
- name: Update native platform | |
run: npx ionic capacitor update ios | |
- name: Build and archive with xcodebuild | |
working-directory: ios | |
run: xcodebuild | |
-workspace App/App.xcworkspace | |
-scheme App | |
-archivePath App/build/App.xarchive | |
clean build archive | |
CODE_SIGN_IDENTITY="" | |
CODE_SIGNING_REQUIRED=NO | |
CODE_SIGNING_ALLOWED="NO" | |
CODE_SIGN_ENTITLEMENTS="" | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm access token for GitHub registry | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Run ESLint and Prettier | |
run: npm run lint | |
test: | |
if: ${{ false }} | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Install dependencies | |
run: npm ci | |
- name: Run unit tests | |
run: npm run test:ci | |
deploy: | |
if: github.ref == 'refs/heads/main' | |
name: Deploy to server | |
runs-on: ubuntu-latest | |
needs: [build, lint] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
name: www | |
path: www | |
- name: Copy files to server | |
uses: appleboy/[email protected] | |
with: | |
host: ${{ secrets.DEPLOY_SSH_HOST }} | |
username: ${{ secrets.DEPLOY_SSH_USERNAME }} | |
password: ${{ secrets.DEPLOY_SSH_PASSWORD }} | |
port: ${{ secrets.DEPLOY_SSH_PORT }} | |
source: www | |
target: ${{ secrets.DEPLOY_DIR }} | |
rm: true |