Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
nordeck-ci committed Dec 12, 2022
0 parents commit 3b2c59f
Show file tree
Hide file tree
Showing 285 changed files with 41,397 additions and 0 deletions.
8 changes: 8 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets)

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
5 changes: 5 additions & 0 deletions .changeset/cold-pans-beam.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'matrix-barcamp-widget': patch
---

Fix personal area not being shared among users on the same device.
11 changes: 11 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "restricted",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
5 changes: 5 additions & 0 deletions .changeset/odd-pears-deliver.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'matrix-barcamp-widget': patch
---

Use of "track" instead of "room" to avoid confusion between matrix rooms and barcamp tracks.
5 changes: 5 additions & 0 deletions .changeset/olive-roses-build.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'matrix-barcamp-widget': patch
---

Fix spelling errors in the German translation
5 changes: 5 additions & 0 deletions .changeset/tame-moose-pull.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'matrix-barcamp-widget': minor
---

Include `arm64` and `s390x` builds.
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# ignore all files except the build folder
*
!/build
!/LICENSE
1 change: 1 addition & 0 deletions .env.local.default
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
# For more options, see docs/configuration.md
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
build/
coverage/
craco.config.js
44 changes: 44 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/*
* Copyright 2022 Nordeck IT + Consulting GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

module.exports = {
plugins: ['promise', 'notice'],
extends: [
'react-app',
'react-app/jest',
'plugin:promise/recommended',
'prettier',
],
rules: {
'notice/notice': [
'error',
{
templateFile: 'scripts/license-header.txt',
onNonMatchingHeader: 'replace',
templateVars: { NAME: 'Nordeck IT + Consulting GmbH' },
varRegexps: { NAME: /.+/ },
},
],
'@typescript-eslint/no-unused-vars': 'error',
'@typescript-eslint/no-explicit-any': 'error',
'no-var': 'error',
'prefer-const': 'error',
'object-shorthand': 'error',
},
globals: {
__webpack_nonce__: true,
},
};
7 changes: 7 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# This file registers ownership for the code.
# Review from a member of the corresponding code owner is required to merge pull requests.
#
# The last matching pattern takes precedence.
# https://help.github.com/articles/about-codeowners/

* @nordeck/matrix-os-maintainers
19 changes: 19 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: 'npm'
directory: '/'
open-pull-requests-limit: 15
rebase-strategy: 'disabled'
schedule:
interval: 'weekly'
- package-ecosystem: 'github-actions'
directory: '/'
open-pull-requests-limit: 15
rebase-strategy: 'disabled'
schedule:
interval: 'weekly'
196 changes: 196 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
name: CI

on:
push:
branches:
- main
pull_request:

env:
DOCKER_IMAGE: ghcr.io/nordeck/matrix-barcamp-widget

jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 15
outputs:
docker-tag: ${{ steps.meta.outputs.version }}
steps:
- uses: actions/checkout@v3
with:
# required for changesets
fetch-depth: '0'
# don't persist the credentials so the changesets action doesn't use the
# github actions token but the git token provided via environment variable
persist-credentials: false

- uses: actions/setup-node@v3
with:
node-version: '16'
cache: 'yarn'

- name: yarn install
run: yarn install --frozen-lockfile

- name: prettier:check
run: yarn prettier:check

- name: depcheck
run: yarn depcheck

- name: lint
run: yarn lint

- name: type checking and declarations
run: yarn tsc

- name: check translations
run: yarn translate --fail-on-update

- name: test
run: yarn test:all

- name: build
run: yarn build

- name: generate disclaimer
run: yarn generate-disclaimer

- name: Login to ghcr.io
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

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

- name: Generate Docker metadata
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.DOCKER_IMAGE }}
labels: |
org.opencontainers.image.title=Matrix BarCamp
org.opencontainers.image.description=A widget for organizing barcamps in matrix chat rooms
org.opencontainers.image.vendor=Nordeck IT + Consulting GmbH
tags: |
type=sha,prefix=
- name: Build and push
uses: docker/build-push-action@v3
id: dockerBuild
with:
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
context: .
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64,linux/s390x

- name: Generate GitHub token
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
id: generate_token
uses: tibdex/github-app-token@021a2405c7f990db57f5eae5397423dcc554159c # @v1.7.0
with:
app_id: ${{ secrets.GH_APP_OS_APP_ID }}
private_key: ${{ secrets.GH_APP_OS_PRIVATE_KEY }}

- name: Create Release Pull Request or Publish Packages
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
uses: changesets/action@e9cc34b540dd3ad1b030c57fd97269e8f6ad905a # @v1.4.1
with:
publish: yarn changeset tag
env:
GITHUB_TOKEN: ${{ steps.generate_token.outputs.token }}

e2e:
runs-on: ubuntu-latest
timeout-minutes: 25
strategy:
fail-fast: false
matrix:
browser: ['chromium', 'firefox', 'webkit']
outputs:
docker-tag: ${{ steps.meta.outputs.version }}
steps:
- uses: actions/checkout@v3

- uses: actions/setup-node@v3
with:
node-version: '16'
cache: 'yarn'

- name: yarn install
run: yarn install --frozen-lockfile

- name: build
run: yarn build

- name: generate disclaimer
run: yarn generate-disclaimer

- name: Login to ghcr.io
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Docker build
uses: docker/build-push-action@v3
id: dockerBuild
with:
context: .

- name: Install Playwright Browsers
run: npx playwright install --with-deps ${{ matrix.browser }}

- name: Run Playwright tests
env:
IMAGE_ID: ${{ steps.dockerBuild.outputs.imageid }}
run: yarn playwright test --project=${{ matrix.browser }}

- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report-${{ matrix.browser }}
path: playwright-report/
retention-days: 7

deploy:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
name: Deploy to Dev
runs-on: ubuntu-latest
timeout-minutes: 15
needs:
- build
- e2e
env:
AWS_REGION: eu-central-1
steps:
- uses: actions/checkout@v3

- name: configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: Create Kubeconfig
run: |
# Extract the base64 encoded config data and write this to the KUBECONFIG
echo "${{ secrets.KUBECONFIG_DEV }}" | base64 -d > /tmp/config
chmod 600 /tmp/config
echo "KUBECONFIG=/tmp/config" >> $GITHUB_ENV
- name: Deploy to the dev cluster
run: helm -n default upgrade --install -f ./charts/matrix-barcamp-widget/values.dev.yaml --set image.tag=${{ needs.build.outputs.docker-tag }} matrix-barcamp-widget ./charts/matrix-barcamp-widget

- name: Cleanup Kubeconfig
if: always()
run: |
rm /tmp/config
61 changes: 61 additions & 0 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# This pipeline runs for every new tag. It will pull the docker container for
# the commit hash of the tag, and will publish it as `:<tag-name>` and `latest`.
name: Release Package

on:
push:
tags:
- '*'

jobs:
build:
name: Build
runs-on: ubuntu-latest
timeout-minutes: 15
env:
DOCKER_IMAGE: ghcr.io/nordeck/matrix-barcamp-widget
steps:
- name: Generate Docker metadata of the existing image
id: meta-existing-tag
uses: docker/metadata-action@v4
with:
images: ${{ env.DOCKER_IMAGE }}
tags: |
type=sha,prefix=
- name: Generate Docker metadata of the new image
id: meta-new-tags
uses: docker/metadata-action@v4
with:
images: ${{ env.DOCKER_IMAGE }}
labels: |
org.opencontainers.image.title=Matrix BarCamp
org.opencontainers.image.description=A widget for organizing barcamps in matrix chat rooms
org.opencontainers.image.vendor=Nordeck IT + Consulting GmbH
tags: |
type=semver,pattern={{version}}
- name: Generate Dockerfile
env:
SOURCE_IMAGE: ${{ fromJSON(steps.meta-existing-tag.outputs.json).tags[0] }}
run: |
echo "FROM $SOURCE_IMAGE" > Dockerfile
- name: Login to ghcr.io
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

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

- name: Build and push
uses: docker/build-push-action@v3
with:
push: true
context: .
tags: ${{ steps.meta-new-tags.outputs.tags }}
labels: ${{ steps.meta-new-tags.outputs.labels }}
platforms: linux/amd64,linux/arm64,linux/s390x
Loading

0 comments on commit 3b2c59f

Please sign in to comment.