Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
7c15797
build(deps): bump axios from 1.16.0 to 1.18.1
dependabot[bot] Jun 22, 2026
1e1c4f5
Merge pull request #697 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 22, 2026
27b6cd2
build(deps-dev): bump @typescript-eslint/parser from 8.60.1 to 8.62.1
dependabot[bot] Jun 29, 2026
3ee3577
Merge pull request #700 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jun 29, 2026
ee32a5d
build(deps-dev): bump @typescript-eslint/parser from 8.62.1 to 8.63.0
dependabot[bot] Jul 6, 2026
21cb051
Merge pull request #701 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jul 6, 2026
70e470b
build(deps-dev): bump @typescript-eslint/eslint-plugin
dependabot[bot] Jul 13, 2026
70b86cb
Merge pull request #702 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jul 13, 2026
9a382eb
build(deps): bump dotenv from 17.3.1 to 17.4.2
dependabot[bot] Jul 20, 2026
a383a63
Merge pull request #705 from UserOfficeProject/dependabot-npm_and_yar…
github-actions[bot] Jul 20, 2026
1c74059
feat(queue): add event type to log messages in QueueConsumer (#707)
jekabs-karklins Jul 30, 2026
faa70b0
feat: add affiliation to visitors and PI (#709)
jekabs-karklins Aug 7, 2026
b85e77c
fix(validateProposalMessage): ensure submitted status is a boolean (#…
janosbabik Aug 10, 2026
0a0b045
fix: Fix startup error handling and correct the ExperimentCreationQue…
janosbabik Aug 11, 2026
cf4823c
fix: Await upsert operations in Experiment and Proposal consumers (#712)
janosbabik Aug 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
109 changes: 84 additions & 25 deletions .github/workflows/build-push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,91 @@ on:
- develop
- staging

permissions:
contents: read

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write

# Build each platform on a native runner instead of emulating arm64 with
# QEMU, which crashes intermittently during npm ci (see
# https://github.com/tonistiigi/binfmt/issues/215).
strategy:
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
- platform: linux/arm64
runner: ubuntu-24.04-arm

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Prepare platform pair
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> "$GITHUB_ENV"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push by digest
id: build
uses: docker/build-push-action@v7
with:
context: .
platforms: ${{ matrix.platform }}
outputs: type=image,name=ghcr.io/userofficeproject/connector,push-by-digest=true,name-canonical=true,push=true

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Export digest
run: |
mkdir -p "${{ runner.temp }}/digests"
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
uses: actions/upload-artifact@v4
with:
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest
needs: build
permissions:
contents: read
packages: write

steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
Expand All @@ -33,32 +100,24 @@ jobs:
- name: Extract branch name
id: extract_branch
uses: swapActions/get-branch-name@v1

- name: Create image tags
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: ghcr.io/userofficeproject/connector
flavor: latest=true # adds :latest tag to outputs.tags
tags: | # adds :<sha> tag to outputs.tags
type=sha,format=long,prefix=
type=raw,value=${{ steps.extract_branch.outputs.branch }}

- name: Build and push
id: docker_build
uses: docker/build-push-action@v5
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.meta.outputs.tags }}
- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
docker buildx imagetools create \
$(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
$(printf 'ghcr.io/userofficeproject/connector@sha256:%s ' *)

- name: Trigger pipeline
if: ${{ steps.extract_branch.outputs.branch == 'staging' }} # Only trigger on staging branch
uses: swapActions/trigger-swap-deployment@v1
with:
repository: ${{ github.event.repository.name }}
environment: ${{ steps.extract_branch.outputs.branch }}
gh-trigger-url: ${{ secrets.GITLAB_TRIGGER_URL }}
gh-token: ${{ secrets.GITLAB_TRIGGER_TOKEN }}
image-tag: ${{ github.sha }}
- name: Inspect image
run: |
docker buildx imagetools inspect ghcr.io/userofficeproject/connector:${{ steps.meta.outputs.version }}
12 changes: 6 additions & 6 deletions .github/workflows/github-tag-and-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@ on:
- master

env:
NODE_VERSION: 18.x
NODE_VERSION: 22.x

jobs:
build:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Bump version and push tag
id: tag_version
Expand All @@ -28,20 +28,20 @@ jobs:
body: ${{ steps.tag_version.outputs.changelog }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v7
with:
context: .
platforms: linux/amd64,linux/arm64/v8
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ on:
branches: [develop, master]

env:
NODE_VERSION: 18.x
NODE_VERSION: 22.x

jobs:
run-linters:
Expand All @@ -14,10 +14,10 @@ jobs:

steps:
- name: Check out Git repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Set up Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: ${{ env.NODE_VERSION }}

Expand Down
102 changes: 88 additions & 14 deletions .github/workflows/test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,10 @@ on:
- staging

env:
NODE_VERSION: 18.x
NODE_VERSION: 22.x

permissions:
contents: read

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
Expand All @@ -19,42 +22,113 @@ jobs:
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Use Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: ${{ env.NODE_VERSION }}

- run: npm ci
- run: npm test

build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.runner }}
needs: test
permissions:
contents: read
packages: write

# Build each platform on a native runner instead of emulating arm64 with
# QEMU, which crashes intermittently during npm ci (see
# https://github.com/tonistiigi/binfmt/issues/215).
strategy:
fail-fast: false
matrix:
include:
- platform: linux/amd64
runner: ubuntu-latest
- platform: linux/arm64
runner: ubuntu-24.04-arm

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Prepare platform pair
run: |
platform=${{ matrix.platform }}
echo "PLATFORM_PAIR=${platform//\//-}" >> "$GITHUB_ENV"

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
# Don't login if dependabot is creating the PR
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
uses: docker/login-action@v2
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
- name: Build and push by digest
id: build
uses: docker/build-push-action@v7
with:
platforms: ${{ matrix.platform }}
outputs: type=image,name=ghcr.io/userofficeproject/connector,push-by-digest=true,name-canonical=true,push=${{ !startsWith(github.head_ref, 'dependabot') }}

- name: Export digest
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
run: |
mkdir -p "${{ runner.temp }}/digests"
digest="${{ steps.build.outputs.digest }}"
touch "${{ runner.temp }}/digests/${digest#sha256:}"

- name: Upload digest
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
uses: actions/upload-artifact@v4
with:
platforms: linux/amd64,linux/arm64
push: ${{ !startsWith(github.head_ref, 'dependabot') }}
tags: ghcr.io/userofficeproject/connector:${{ github.head_ref }}
name: digests-${{ env.PLATFORM_PAIR }}
path: ${{ runner.temp }}/digests/*
if-no-files-found: error
retention-days: 1

merge:
runs-on: ubuntu-latest
needs: build
# Nothing was pushed for dependabot PRs, so there is nothing to merge.
if: ${{ !startsWith(github.head_ref, 'dependabot') }}
permissions:
contents: read
packages: write

steps:
- name: Download digests
uses: actions/download-artifact@v4
with:
path: ${{ runner.temp }}/digests
pattern: digests-*
merge-multiple: true

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4

- name: Login to GitHub Container Registry
uses: docker/login-action@v4
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create manifest list and push
working-directory: ${{ runner.temp }}/digests
run: |
docker buildx imagetools create \
-t ghcr.io/userofficeproject/connector:${{ github.head_ref }} \
$(printf 'ghcr.io/userofficeproject/connector@sha256:%s ' *)

- name: Inspect image
run: |
docker buildx imagetools inspect ghcr.io/userofficeproject/connector:${{ github.head_ref }}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@ To be able to start the connector locally you will need to:

1. Install all needed dependencies with `npm install`
2. Copy the missing matrix-js dependency `npm run fix-olm-dependency`
3. Start the application using `npm run start`
3. Start the application using the command `npm run start`
Loading
Loading