Workflows in the Repositories¶
The currently used Continuous Integration Pipeline is GitHub Actions, which provides 2.000 minutes free per month. It can run on either Ubuntu, MacOS, or Windows, allowing us to test multiple platforms from our CI-Platform without cost.
weekplanner¶
The weekplanner is built in 4 jobs from the same workflow: main.yml
build-and-test-android
build-and-test-ios
deploy-to-playstore
deploy-to-appstore
Android¶
Given these jobs, the build-and-test-android
job runs flutter test
and
flutter build appbundle
, on all platforms, and produces an appbundle file.
This bundle is ready for upload to Google Play Store, in the
deploy-to-playstore
-task that only runs on master.
iOS¶
Builds to iOS requires Xcode to build dependency, so the task build-and-test-ios
only runs on MacOS, and produces an app.ipa
-file, iOS App Store Package.
This file is then prepared for deploy-to-appstore
, which uploads the build to
our App Store Connect-account, which can be pushed to internal test, or into release
state. This task also runs only on master
-branch.
api_client¶
This job is built in one task: lint-and-test.yml
The testing-suite for the api_client is a bit more simple, it runs flutter analyze
,
and flutter test
, to ensure tests and linting is passing.
web-api¶
This job is built in two tasks: dotnettest.yml and dockerimage.yml
Similar to the api_client, the web-api suite runs by building a dotnet system in
Release mode, to ensure deployability, and then runs dotnet test
, to run the embedded
GirafRest.Test project and the unit tests contained.
GitHub Packages¶
In addition to running unit tests, when pushed to any branch GitHub Actions starts another job, starts a build of the embedded Dockerfile, and tags this accordingly as either:
- master: aau-giraf/web-api/web-api:latest
- develop: aau-giraf/web-api/web-api:develop
- issue/123: aau-giraf/web-api/web-api:issue-123
When deploying into the production swarm, these images are pulled into DEV and PROD environments accordingly.
wiki¶
This job is built in one task: page-build.yml
As the wiki is currently built using MKDocs, this repository is set up with a GitHub Actions script to build the source files, markdown, into a static HTML page, and push this into the GitHub Pages-environment, allowing it to be reachable at http://giraf-aau.github.io/wiki.
This is run using an existing GitHub Action, mhausenblas/mkdocs-deploy-gh-pages, thus being the simplest of the builds.