Skip to content

Commit ad3df7f

Browse files
Release OpenProject 12.0.0
2 parents 1561d86 + f3fa309 commit ad3df7f

File tree

11,149 files changed

+995412
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

11,149 files changed

+995412
-0
lines changed

.buildpacks

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
https://github.com/heroku/heroku-buildpack-nodejs.git#v162
2+
https://github.com/pkgr/heroku-buildpack-ruby.git#v212-1

.dockerignore

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
.github/
2+
.git
3+
.dockerignore
4+
.bundle
5+
.env*
6+
.buildpacks
7+
.*.yml
8+
*.swp
9+
.*ignore
10+
*.md
11+
*.log
12+
Vagrantfile
13+
Dockerfile
14+
Guardfile
15+
docker-compose.*
16+
browserslist
17+
18+
docs
19+
!docs/api/apiv3/openapi-spec.yml
20+
!docs/api/apiv3/paths
21+
!docs/api/apiv3/tags
22+
!docs/api/apiv3/components
23+
24+
extra
25+
features
26+
help
27+
log/*.log
28+
spec
29+
spec_legacy
30+
tmp
31+
frontend/node_modules
32+
node_modules
33+
# travis
34+
vendor/bundle

.editorconfig

Lines changed: 545 additions & 0 deletions
Large diffs are not rendered by default.

.env.example

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
#-- copyright
2+
# OpenProject is an open source project management software.
3+
# Copyright (C) 2012-2020 the OpenProject GmbH
4+
#
5+
# This program is free software; you can redistribute it and/or
6+
# modify it under the terms of the GNU General Public License version 3.
7+
#
8+
# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows:
9+
# Copyright (C) 2006-2013 Jean-Philippe Lang
10+
# Copyright (C) 2010-2013 the ChiliProject Team
11+
#
12+
# This program is free software; you can redistribute it and/or
13+
# modify it under the terms of the GNU General Public License
14+
# as published by the Free Software Foundation; either version 2
15+
# of the License, or (at your option) any later version.
16+
#
17+
# This program is distributed in the hope that it will be useful,
18+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
19+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20+
# GNU General Public License for more details.
21+
#
22+
# You should have received a copy of the GNU General Public License
23+
# along with this program; if not, write to the Free Software
24+
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
25+
#
26+
# See COPYRIGHT and LICENSE files for more details.
27+
#++
28+
29+
# If you place a .env file into the root directory of OpenProject
30+
# you can override some default settings that foreman will use
31+
# to start OpenProject
32+
33+
# This is used to prevent people from using the new docker-compose file for automated installs
34+
LOCAL_DEV_CHECK=1
35+
36+
# Set this to your ckeditor build output directory (which includes ckeditor.js) if you
37+
# want to develop ckeditor locally.
38+
CKEDITOR_BUILD_DIR=frontend/src/vendor/ckeditor/
39+
40+
# This is the host from which you will be accessing the development servers locally
41+
PUBLIC_HOST=localhost
42+
43+
HOST=0.0.0.0
44+
PORT=1337
45+
46+
DEV_UID=1000
47+
DEV_GID=1001
48+
49+
DB_HOST=db
50+
DB_PORT=5432
51+
DB_USERNAME=openproject
52+
DB_PASSWORD=openproject
53+
DB_DATABASE=openproject
54+
55+
CI_JOBS=24
56+
57+
SMTP_ADDRESS=
58+
SMTP_PORT=
59+
SMTP_DOMAIN=
60+
SMTP_USER_NAME=
61+
SMTP_PASSWORD=
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: "Core/Ruby-Brakeman"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- dev
7+
- release/*
8+
paths:
9+
- '**.rb'
10+
schedule:
11+
- cron: '10 6 * * 1'
12+
13+
jobs:
14+
brakeman-scan:
15+
if: github.repository == 'opf/openproject'
16+
name: Brakeman Scan
17+
runs-on: ubuntu-latest
18+
steps:
19+
- name: Checkout
20+
uses: actions/checkout@v2
21+
22+
- name: Setup Ruby
23+
uses: ruby/setup-ruby@v1
24+
25+
- name: Setup Brakeman
26+
run: |
27+
gem install brakeman
28+
29+
- name: Scan
30+
continue-on-error: true
31+
run: |
32+
brakeman -i config/brakeman.ignore -f sarif -o output.sarif.json .
33+
34+
- name: Upload SARIF
35+
uses: github/codeql-action/upload-sarif@v1
36+
with:
37+
sarif_file: output.sarif.json
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: "Core/JS-CodeQL"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- dev
7+
- release/*
8+
paths:
9+
- '**.js'
10+
- '**.ts'
11+
schedule:
12+
- cron: '55 5 * * 1-5'
13+
14+
jobs:
15+
analyze:
16+
name: Analyze
17+
runs-on: ubuntu-latest
18+
permissions:
19+
actions: read
20+
contents: read
21+
security-events: write
22+
23+
strategy:
24+
fail-fast: false
25+
matrix:
26+
language: [ 'javascript' ]
27+
28+
steps:
29+
- name: Checkout repository
30+
uses: actions/checkout@v2
31+
32+
- name: Initialize CodeQL
33+
uses: github/codeql-action/init@v1
34+
with:
35+
languages: ${{ matrix.language }}
36+
37+
- name: Perform CodeQL Analysis
38+
uses: github/codeql-action/analyze@v1
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Core/CD
2+
on:
3+
push:
4+
branches:
5+
- dev
6+
- release/*
7+
jobs:
8+
trigger_downstream_workflow:
9+
if: github.repository == 'opf/openproject'
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Trigger downstream workflow
13+
env:
14+
TOKEN: ${{ secrets.OPENPROJECT_CI_TOKEN }}
15+
SAAS_CD_WORKFLOW_ID: continuous-delivery-saas.yml
16+
SAAS_REPOSITORY: opf/saas-openproject
17+
run: |
18+
curl -i --fail -H"authorization: Bearer $TOKEN" \
19+
-XPOST -H"Accept: application/vnd.github.v3+json" \
20+
https://api.github.com/repos/$SAAS_REPOSITORY/actions/workflows/$SAAS_CD_WORKFLOW_ID/dispatches \
21+
-d '{"ref": "${{ github.ref }}"}'

.github/workflows/docker.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Docker
2+
on:
3+
# Scheduled workflows run on the latest commit on the default or base branch
4+
schedule:
5+
- cron: '20 2 * * *' # Daily at 02:20
6+
7+
push:
8+
tags:
9+
- v*
10+
jobs:
11+
publish:
12+
# restrict this job to base repo for now
13+
if: github.repository == 'opf/openproject'
14+
runs-on: ubuntu-latest
15+
env:
16+
INPUT_BUILDOPTIONS: --pull
17+
steps:
18+
- uses: actions/checkout@master
19+
- name: Prepare docker files
20+
run: |
21+
cp ./docker/prod/Dockerfile ./Dockerfile
22+
- name: Build & Push
23+
id: build_and_push
24+
uses: elgohr/Publish-Docker-Github-Action@master
25+
with:
26+
name: openproject/community
27+
username: ${{ secrets.DOCKER_USERNAME }}
28+
password: ${{ secrets.DOCKER_PASSWORD }}
29+
tag_semver: true
30+
cache: ${{ github.event_name != 'schedule' }}
31+
- name: Test
32+
run: |
33+
docker run --name openproject -d -p 8080:80 -e SUPERVISORD_LOG_LEVEL=debug -e SECRET_KEY_BASE=secret ${{ steps.build_and_push.outputs.digest }}
34+
sleep 30
35+
docker logs openproject --tail 100
36+
wget -O- --retry-on-http-error=503,502 --retry-connrefused http://localhost:8080/api/v3

.github/workflows/eslint-core.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: "Core/Frontend-Linting"
2+
on:
3+
pull_request:
4+
branches:
5+
- dev
6+
- release/*
7+
paths:
8+
- '**.js'
9+
- '**.ts'
10+
11+
jobs:
12+
eslint:
13+
name: eslint
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
with:
18+
fetch-depth: 0
19+
- uses: opf/action-eslint@v2
20+
with:
21+
reporter: github-pr-check

.github/workflows/pullpreview.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: pullpreview
2+
3+
on:
4+
pull_request:
5+
types: [labeled, unlabeled, synchronize, closed, reopened]
6+
7+
jobs:
8+
deploy:
9+
if: github.repository == 'opf/openproject' && ( github.event_name == 'push' || github.event.label.name == 'pullpreview' || contains(github.event.pull_request.labels.*.name, 'pullpreview') )
10+
runs-on: ubuntu-latest
11+
timeout-minutes: 30
12+
steps:
13+
- uses: actions/checkout@v2
14+
- name: Generate .env.pullpreview file
15+
run: |
16+
echo "OP_ADMIN_USER_SEEDER_FORCE_PASSWORD_CHANGE=off" >> .env.pullpreview
17+
echo "OPENPROJECT_SHOW__SETTING__MISMATCH__WARNING=false" >> .env.pullpreview
18+
- name: Boot as BIM edition
19+
if: contains(github.ref, 'bim/') || contains(github.head_ref, 'bim/')
20+
run: |
21+
echo "OPENPROJECT_EDITION=bim" >> .env.pullpreview
22+
- name: Prepare docker-compose files
23+
run: |
24+
cp ./docker/pullpreview/docker-compose.yml ./docker-compose.pullpreview.yml
25+
cp ./docker/prod/Dockerfile ./Dockerfile
26+
- uses: pullpreview/action@v5
27+
with:
28+
admins: crohr,HDinger,machisuji,oliverguenther,ulferts,wielinde,b12f
29+
always_on: dev
30+
compose_files: docker-compose.pullpreview.yml
31+
instance_type: medium_2_0
32+
ports: 80,443
33+
default_port: 443
34+
env:
35+
AWS_ACCESS_KEY_ID: "${{ secrets.AWS_ACCESS_KEY_ID }}"
36+
AWS_SECRET_ACCESS_KEY: "${{ secrets.AWS_SECRET_ACCESS_KEY }}"
37+
AWS_REGION: eu-central-1

.github/workflows/rubocop-core.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: "Core/Backend-Linting"
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- dev
7+
- release/*
8+
paths:
9+
- '**.rb'
10+
11+
jobs:
12+
rubocop:
13+
name: rubocop
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
with:
18+
fetch-depth: 0
19+
- uses: ruby/setup-ruby@v1
20+
- uses: opf/action-rubocop@v2
21+
with:
22+
github_token: ${{ secrets.github_token }}
23+
rubocop_version: gemfile
24+
rubocop_extensions: rubocop-rails:gemfile rubocop-rspec:gemfile
25+
reporter: github-pr-check

0 commit comments

Comments
 (0)