Skip to main content

Github Actions CI

GitHub Actions makes it easy to automate all your software workflows, now with world-class CI/CD. Build, test, and deploy your code right from GitHub.

View all github actions on github

Important pipelines

Table of Contents

  1. Create Desktop Release on tag for Swift and WPF
  2. Docker Hub on new version (Create Release on tag for Docker Hub)
  3. Docker buildx multi-arch CI unstable master
  4. Auto upgrade .NET SDK version
  5. Application Version Auto update
  6. Auto update Nuget packages list
  7. Auto Update Swagger
  8. Auto clientapp create Vite upgrade
  9. Auto Documentation create Docusaurus upgrade
  10. ClientApp React Linux CI
  11. ClientApp React Windows CI
  12. CodeQL analysis
  13. Documentation Linux CI
  14. Documentation to GitHub Pages
  15. End-to-End on Ubuntu CI
  16. End-to-End on Windows CI
  17. Clean untagged GHCR images
  18. Desktop macOS PR Build
  19. Desktop macOS SonarQube Analyze
  20. Desktop Windows PR Build
  21. Desktop Windows SonarQube .NET
  22. Tools dependencies mirror Netlify
  23. Tools SonarCloud Create Issue
  24. WebApp Build .NET macOS

All github actions used by this project

There are multiple github actions used by this project. Bellow is a list of all github actions and a short on alphabet order.

Auto upgrade .NET SDK version

Run weekly Automatically upgrade the .NET SDK version and upgrade nuget packages file when a new version is released.

webapp-update-dotnet-sdk-version-upgrade

cd starsky-tools/build-tools/
npm run nuget-package-list

webapp-update-dotnet-sdk-version-upgrade.yml

Application Version Auto update

Run on push and manual trigger Upgrade the application version in the csproj file and package.json file

global-update-application-version-auto

cd starsky-tools/build-tools/
npm run app-version-update

global-update-application-version-auto.yml

Auto update Nuget packages list

On push on master branch Creates a list of nuget packages and their version in the nuget-package-list file

webapp-update-nuget-packages-list

cd starsky-tools/build-tools/
npm run nuget-package-list

webapp-update-nuget-packages-list.yml

Auto Update Swagger

Update json file with the latest swagger file

webapp-update-swagger-dotnet

cd starsky/starsky
export app__AddSwagger="true"
export app__AddSwaggerExport="true"
export app__AddSwaggerExportExitAfter="true"
dotnet run --no-launch-profile
cd ../../
cd starsky-tools/build-tools/
npm run nuget-package-list

webapp-update-swagger-dotnet.yml

Auto clientapp create Vite upgrade

Bootstrap the client app with the latest Vite version

clientapp-update-dependencies-vite

cd starsky-tools/build-tools/
npm run clientapp-create-react-app-update

clientapp-update-dependencies-vite.yml

Auto Documentation create Docusaurus upgrade

Bootstrap the docs with the latest Docusaurus version

documentation-update-dependencies-create-docusaurus

cd starsky-tools/build-tools/
npm run documentation-create-docusaurus-update

documentation-update-dependencies-create-docusaurus.yml

ClientApp React Linux CI

Build for the ClientApp on linux Runs on pull request and push on the master branch

clientapp-react-linux-ci

cd starsky/starsky/clientapp
npm ci
npm run build
npm run test:ci

clientapp-react-linux-ci.yml

ClientApp React Windows CI

Build for the ClientApp on Windows Runs on pull request and push on the master branch

ClientApp React Windows CI

cd starsky/starsky/clientapp
npm ci
npm run build
npm run test:ci

clientapp-react-windows-ci.yml

CodeQL analysis

Run CodeQL analysis on push and pull request

global-codeql-analysis

global-codeql-analysis.yml

Documentation to github pages

Deploy docs site to github pages

documentation-gh-pages

documentation-gh-pages.yml

end2end on ubuntu-ci

Cypress end to end testing on ubuntu ci Runs a systemd service and a cypress test. See Cypress Dashboard and click on the tag: ubuntu-ci for more details.

end2end on ubuntu-ci

end2end-ubuntu-ci.yml

end2end on windows-ci

Cypress end to end testing on windows ci Runs a windows service and a cypress test. See Cypress Dashboard and click on the tag: windows-ci for more details.

end2end on windows-ci

end2end-windows-ci.yml

Create Release on tag for docker hub

On tag push create a release for docker hub runs on release of a new stable version

webapp-docker-release-on-tag-docker-hub

webapp-docker-release-on-tag-docker-hub.yml

Create Desktop Release on tag for Swift and WPF

Build the .NET runtime and the native Swift macOS and WPF Windows desktop clients. Only creates a release when a new tag is pushed.

desktop-release-on-tag-native

desktop-release-on-tag-native.yml

Docker buildx multi-arch CI unstable master

Build docker images for testing

webapp-unstable-docker-buildx

webapp-unstable-docker-buildx.yml

Starsky .NET (Ubuntu)

CI build for .NET Core on Ubuntu Builds and runs unit tests in international mode and locale NL_nl due dot and comma issues

webapp-build-net-ubuntu

webapp-build-net-ubuntu

Starsky .NET Core (Windows)

CI build for .NET Core on Windows Builds and runs unit tests

webapp-build-net-windows

webapp-build-net-windows.yml

Starsky SonarQube ClientApp NetCore Analyze PR

Analyze the code with SonarQube on Pull Request

webapp-sonarqube-clientapp-netcore

webapp-sonarqube-clientapp-netcore.yml

Starsky Tools Node smoke test

Smoke tests for the starsky-tools

  • dropbox import
  • localtunnel
  • mail
  • mock service
  • thumbnail

tools-smoke-test-node

tools-smoke-test-node.yml

storybook clientapp netlify

Deploy storybook of clientapp to netlify

clientapp-storybook-netlify

clientapp-storybook-netlify.yml

Documentation Linux CI

Build and verify the documentation site on Linux. Runs on pull request when files under documentation/ change.

documentation-linux-ci

documentation-linux-ci.yml

Clean untagged GHCR images

Run daily (scheduled) Deletes untagged container images and old nightly builds from the GitHub Container Registry to keep storage usage low.

global-clean-untagged-ghcr-images

global-clean-untagged-ghcr-images.yml

Desktop macOS PR Build

Build and test the native macOS Swift/AppKit app on pull request and push to master. Uses xcodegen to generate the Xcode project before building.

desktop-macos-pr-build

desktop-macos-pr-build.yml

Desktop macOS SonarQube Analyze

SonarQube code analysis for the native macOS app. Runs on push/PR to master when mac/ changes, and on a schedule (Mon/Wed/Fri).

desktop-macos-sonarqube

desktop-macos-sonarqube.yml

Desktop Windows PR Build

Build and test the native Windows desktop app on pull request and push to master. Runs on windows-latest when files under windows/ change.

desktop-windows-pr-build

desktop-windows-pr-build.yml

Desktop Windows SonarQube .NET

SonarQube code analysis for the Windows desktop .NET project. Runs on push/PR to master when windows/ changes, and on a schedule (Sun/Tue/Thu/Sat).

desktop-windows-sonarqube-net

desktop-windows-sonarqube-net.yml

Tools dependencies mirror Netlify

Verify and mirror external tool dependencies (exiftool, ffmpeg, geonames) to Netlify. Runs on push/PR when download-mirror scripts change.

tools-dependencies-mirror-netlify

tools-dependencies-mirror-netlify.yml

Tools SonarCloud Create Issue

Run every 12 hours (scheduled) Fetches SonarCloud analysis results and automatically creates GitHub issues for new findings.

tools-sonarcloud-create-issue

tools-sonarcloud-create-issue.yml

WebApp Build .NET macOS

CI build for .NET on macOS. Runs on push/PR to master when files under starsky/ change (excluding the clientapp).

webapp-build-net-macos

webapp-build-net-macos.yml