Skip to content

build(deps): bump the dependencies group in /app with 2 updates (#221) #1000

build(deps): bump the dependencies group in /app with 2 updates (#221)

build(deps): bump the dependencies group in /app with 2 updates (#221) #1000

Workflow file for this run

name: πŸš€ Pipeline
on:
push:
branches: ["**"]
env:
DOCKER_REGISTRY: ghcr.io
PRIVATE_REPOSITORY: OpenEMS-private
jobs:
release-please:
name: ✨ Release Please
if: github.ref_name == 'main'
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
outputs:
created: ${{ steps.release.outputs.releases_created }}
app-created: ${{ steps.release.outputs.app--release_created }}
server-created: ${{ steps.release.outputs.server--release_created }}
keycloak-created: ${{ steps.release.outputs.keycloak--release_created }}
steps:
- name: πŸ— Get app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.OCE_APP_ID }}
private-key: ${{ secrets.OCE_APP_PRIVATE_KEY }}
- name: ✨ Release Please
id: release
uses: googleapis/release-please-action@v4
with:
config-file: release-please/config.json
manifest-file: release-please/manifest.json
token: ${{ steps.app-token.outputs.token }}
debug-release-please:
name: 🐞 Debug
runs-on: ubuntu-latest
needs:
- release-please
steps:
- name: πŸ“£ Outputs
run: |
echo '✨ Releases: ${{ needs.release-please.outputs.created }}'
echo 'πŸ“± App: ${{ needs.release-please.outputs.app-created }}'
echo 'πŸš‚ Server: ${{ needs.release-please.outputs.server-created }}'
echo 'πŸ•΅οΈβ€β™‚οΈ Keycloak: ${{ needs.release-please.outputs.keycloak-created }}'
build-app:
name: πŸ“± Build app
runs-on: ubuntu-latest
strategy:
matrix:
subcommand: [appbundle, web]
defaults:
run:
working-directory: app
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
- name: 🏞️ Setup environment
uses: ./.github/actions/setup-environment
with:
flutter: true
- name: πŸ— Restore dependencies
run: just pub-get
- name: 🎨 Analyze
run: just analyze
- name: πŸ› οΈ Build ${{ matrix.subcommand }}
run: just build ${{ matrix.subcommand }}
publish-web-app:
name: 🐳 Publish web app docker image
runs-on: ubuntu-latest
needs:
- release-please
- build-app
if: needs.release-please.outputs.app-created
permissions:
contents: read
packages: write
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
- name: 🏞️ Setup environment
uses: ./.github/actions/setup-environment
with:
flutter: true
dotnet: true
docker: true
- name: πŸ—οΈ Login to container registry.
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🐳 Build and push docker image
run: just target app:publish
test-server:
name: πŸš‚ Test server
runs-on: ubuntu-latest
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
- name: 🏞️ Setup environment
uses: ./.github/actions/setup-environment
with:
dotnet: true
docker: true
- name: πŸ§ͺ Test
run: just target build:test
publish-server:
name: 🐳 Publish server docker image
runs-on: ubuntu-latest
needs:
- release-please
- test-server
if: needs.release-please.outputs.server-created
permissions:
contents: read
packages: write
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
- name: 🏞️ Setup environment
uses: ./.github/actions/setup-environment
with:
dotnet: true
docker: true
- name: πŸ—οΈ Login to container registry.
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🐳 Build and push docker image
run: just target docker:publish
publish-keycloak:
name: 🐳 Publish keycloak docker image
runs-on: ubuntu-latest
needs:
- release-please
if: needs.release-please.outputs.keycloak-created
permissions:
contents: read
packages: write
steps:
- name: πŸ›’ Checkout
uses: actions/checkout@v4
- name: 🏞️ Setup environment
uses: ./.github/actions/setup-environment
with:
dotnet: true
docker: true
- name: πŸ—οΈ Login to container registry.
uses: docker/login-action@v3
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 🐳 Build and push docker image
run: just target keycloak:publish
deploy:
name: πŸš€ Trigger deployment
runs-on: ubuntu-latest
needs:
- publish-server
- publish-keycloak
- publish-web-app
# always(): run even if one of 'needs' is skipped
# contains(needs.*.result, 'success') does not work
# see: https://github.com/actions/runner/issues/1251#issuecomment-1691111412
if: >
always() && (
needs.publish-server.result == 'success' ||
needs.publish-keycloak.result == 'success' ||
needs.publish-web-app.result == 'success'
)
steps:
- name: πŸ— Get app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.OCE_APP_ID }}
private-key: ${{ secrets.OCE_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
repositories: ${{ env.PRIVATE_REPOSITORY }}
- name: πŸš€ Trigger deployment
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ steps.app-token.outputs.token }}
repository: ${{ github.repository_owner }}/${{ env.PRIVATE_REPOSITORY }}
event-type: deploy
client-payload: '{ "ref": "${{ github.ref }}" }'
publish-app:
name: πŸ“± Trigger publish app
runs-on: ubuntu-latest
needs:
- build-app
- release-please
if: needs.release-please.outputs.app-created
steps:
- name: πŸ— Get app token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.OCE_APP_ID }}
private-key: ${{ secrets.OCE_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
repositories: ${{ env.PRIVATE_REPOSITORY }}
- name: πŸ“± Trigger publish app
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ steps.app-token.outputs.token }}
repository: ${{ github.repository_owner }}/${{ env.PRIVATE_REPOSITORY }}
event-type: publish-app
client-payload: '{ "ref": "${{ github.ref }}" }'