feat: NFC support for canteen cards to query the balance #107
Workflow file for this run
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: 17 | |
JAVA_DISTRIBUTION: "zulu" | |
RUBY_VERSION: 3.1 | |
jobs: | |
build-web: | |
name: Build web assets | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm token | |
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 -- --configuration production | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
with: | |
name: www | |
path: www | |
build-android: | |
name: Build Android platform | |
runs-on: macos-latest | |
needs: [build-web] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: www | |
path: www | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm token | |
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@v3 | |
with: | |
distribution: ${{ env.JAVA_DISTRIBUTION }} | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Set up Ruby ${{ env.RUBY_VERSION }} and install dependencies | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ env.RUBY_VERSION }} | |
bundler-cache: true | |
- 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: Add keystore files | |
run: | | |
echo "${{ secrets.KEYSTORE_PROPERTIES_BASE64 }}" | base64 --decode > android/keystore.properties | |
echo "${{ secrets.DHBW_VS_KEYSTORE_BASE64 }}" | base64 --decode > android/DHBW-VS.keystore | |
- name: Build native platform | |
run: bundle exec fastlane android build release:true | |
build-ios: | |
name: Build iOS platform | |
runs-on: macos-latest | |
needs: [build-web] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Download artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: www | |
path: www | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm token | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Set up Ruby ${{ env.RUBY_VERSION }} and install dependencies | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ env.RUBY_VERSION }} | |
bundler-cache: true | |
- 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: Download iOS certificates and provisioning profiles | |
run: bundle exec fastlane ios sync_certificates type:appstore | |
env: | |
MATCH_GIT_BASIC_AUTHORIZATION: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }} | |
MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }} | |
- name: Build native platform | |
run: bundle exec fastlane ios build release:true | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm token | |
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: | |
name: Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm token | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Run unit tests | |
run: npm run test:ci | |
e2e: | |
name: E2E | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Set up Node.js ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- name: Set npm token | |
run: echo "//npm.pkg.github.com/:_authToken=${{ secrets.NPM_TOKEN }}" >> .npmrc | |
- name: Install Node.js dependencies | |
run: npm ci | |
- name: Run end-to-end tests | |
run: npm run e2e:ci | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: screenshots | |
path: cypress/screenshots |