Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: release 5.0 #7851

Merged
merged 41 commits into from
Mar 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
626fad2
fix: setting a field to null does not delete it via GraphQL API (#7649)
Moumouls Oct 26, 2021
d3e9142
ci: add release automation (#7656)
mtrezza Oct 27, 2021
18a7838
ci: fix auto release (#7657)
mtrezza Oct 27, 2021
9332165
chore(release): 5.0.0-alpha.2 [skip ci]
semantic-release-bot Oct 27, 2021
758e4b7
docs: updated changelog entry to PR template
mtrezza Oct 27, 2021
5dfc3b3
ci: remove changelog check
mtrezza Oct 27, 2021
f1238ea
docs: adapt changelog links temporarily until stable release
mtrezza Oct 27, 2021
e1f8de8
ci: fix docker build with node:lts-alpine (#7663)
mtrezza Oct 29, 2021
edb03f2
ci: increase docker ci timeout (#7664)
mtrezza Oct 29, 2021
174886e
fix: combined `and` query with relational query condition returns inc…
Kingtous Oct 29, 2021
62cc9ca
chore(release): 5.0.0-alpha.3 [skip ci]
semantic-release-bot Oct 29, 2021
a359c02
ci: add missing docker archs (#7666)
mtrezza Oct 29, 2021
28fa716
test: port test changes from 4.x LTS branch; upgrade spec reporter fr…
FransGH Oct 30, 2021
090350a
feat: add support for Postgres 14 (#7644)
cbaker6 Oct 31, 2021
87e65d8
chore(release): 5.0.0-alpha.4 [skip ci]
semantic-release-bot Oct 31, 2021
42ecf6c
docs: add versioning system to contribution guide (#7294)
mtrezza Oct 31, 2021
7621622
docs: slim compatibility tables in README
mtrezza Nov 1, 2021
653d257
docs: add Node 16 compatibility to README
mtrezza Nov 1, 2021
25d5c30
feat: add user-defined schema and migrations (#7418)
sadortun Nov 1, 2021
ef47131
chore(release): 5.0.0-alpha.5 [skip ci]
semantic-release-bot Nov 1, 2021
e94a08f
build: release beta
mtrezza Nov 1, 2021
4f11406
chore(release): 5.0.0-beta.1 [skip ci]
semantic-release-bot Nov 1, 2021
e91e388
docs: fix changelog which was expectedly incorrect on first beta release
mtrezza Nov 1, 2021
6962bfa
docs: enable npm beta badge on README
mtrezza Nov 1, 2021
200d4ba
revert: refactor: allow ES import for cloud string if package type is…
mtrezza Nov 10, 2021
32b7194
chore(release): 5.0.0-beta.2 [skip ci]
semantic-release-bot Nov 10, 2021
6a54dac
fix: node engine range has no upper limit to exclude incompatible nod…
mtrezza Nov 12, 2021
2923833
chore(release): 5.0.0-beta.3 [skip ci]
semantic-release-bot Nov 12, 2021
8ee0445
fix: unable to use objectId size higher than 19 on GraphQL API (#7722)
mtrezza Nov 27, 2021
66347dc
chore(release): 5.0.0-beta.4 [skip ci]
semantic-release-bot Nov 27, 2021
3b92fa1
fix: schema cache not cleared in some cases (#7771)
mtrezza Jan 13, 2022
f90461e
chore(release): 5.0.0-beta.5 [skip ci]
semantic-release-bot Jan 13, 2022
4bd34b1
fix: security upgrade follow-redirects from 1.14.2 to 1.14.7 (#7772)
snyk-bot Jan 13, 2022
be37266
chore(release): 5.0.0-beta.6 [skip ci]
semantic-release-bot Jan 13, 2022
7029b27
fix: security upgrade follow-redirects from 1.14.7 to 1.14.8 (#7802)
snyk-bot Feb 10, 2022
a48015c
chore(release): 5.0.0-beta.7 [skip ci]
semantic-release-bot Feb 10, 2022
971adb5
fix: security vulnerability that allows remote code execution (GHSA-p…
mtrezza Mar 12, 2022
d35cd47
chore(release): 5.0.0-beta.8 [skip ci]
semantic-release-bot Mar 12, 2022
23a3488
feat: bump required node engine to >=12.22.10 (#7848)
mtrezza Mar 12, 2022
f5ef2e9
chore(release): 5.0.0-beta.9 [skip ci]
semantic-release-bot Mar 12, 2022
b2a2a7e
Merge branch 'release' into build-release
mtrezza Mar 12, 2022
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
3 changes: 1 addition & 2 deletions .babelrc
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
["@babel/preset-env", {
"targets": {
"node": "12"
},
"exclude": ["proposal-dynamic-import"]
}
}]
],
"sourceMaps": "inline"
Expand Down
5 changes: 2 additions & 3 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,8 @@ Related issue: FILL_THIS_OUT
Delete suggested TODOs that do not apply to this PR.
-->

- [ ] Add test cases
- [ ] Add entry to changelog
- [ ] Add tests
- [ ] Add changes to documentation (guides, repository pages, in-code descriptions)
- [ ] Add [security check](https://github.com/parse-community/parse-server/blob/master/CONTRIBUTING.md#security-checks)
- [ ] Add new Parse Error codes to Parse JS SDK <!-- no hard-coded error codes in Parse Server -->
- [ ] ...
- [x] A changelog entry is created automatically using the pull request title (do not manually add a changelog entry)
30 changes: 18 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
name: ci
on:
push:
branches:
- release
branches: [ release, alpha, beta, next-major ]
pull_request:
branches:
- '**'
Expand Down Expand Up @@ -31,13 +30,6 @@ jobs:
run: npm ci
- name: CI Node Engine Check
run: npm run ci:checkNodeEngine
check-changelog:
name: Changelog
timeout-minutes: 5
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: dangoslen/changelog-enforcer@v2
check-lint:
name: Lint
timeout-minutes: 15
Expand Down Expand Up @@ -80,12 +72,21 @@ jobs:
- run: npm run madge:circular
check-docker:
name: Docker Build
timeout-minutes: 5
timeout-minutes: 15
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Checkout repository
uses: actions/checkout@v2
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Build docker image
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64
check-lock-file-version:
name: NPM Lock File Version
timeout-minutes: 5
Expand Down Expand Up @@ -192,6 +193,9 @@ jobs:
- name: PostgreSQL 13, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:13-3.1
NODE_VERSION: 14.18.1
- name: PostgreSQL 14, PostGIS 3.1
POSTGRES_IMAGE: postgis/postgis:14-3.1
NODE_VERSION: 14.18.1
fail-fast: false
name: ${{ matrix.name }}
timeout-minutes: 15
Expand Down Expand Up @@ -231,7 +235,9 @@ jobs:
${{ runner.os }}-node-${{ matrix.NODE_VERSION }}-
- name: Install dependencies
run: npm ci
- run: bash scripts/before_script_postgres.sh
- run: |
bash scripts/before_script_postgres_conf.sh
bash scripts/before_script_postgres.sh
- run: npm run coverage
env:
CI: true
Expand Down
74 changes: 74 additions & 0 deletions .github/workflows/release-automated-scheduler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# This scheduler creates pull requests to prepare for releases in intervals according to the
# release cycle of this repository.

name: release-automated-scheduler
on:
# Scheduler temporarily disabled until stable release of Parse Server 5 with all branches (alpha, beta, release) created
# schedule:
# - cron: 0 0 1 * *
workflow_dispatch:

jobs:
create-pr-release:
runs-on: ubuntu-latest
steps:
- name: Checkout beta branch
uses: actions/checkout@v2
with:
ref: beta
- name: Compose branch name for PR
id: branch
run: echo "::set-output name=name::build-release-${{ github.run_id }}${{ github.run_number }}"
- name: Create branch
run: |
git config --global user.email ${{ github.actor }}@users.noreply.github.com
git config --global user.name ${{ github.actor }}
git checkout -b ${{ steps.branch.outputs.name }}
git commit -am 'ci: release commit' --allow-empty
git push --set-upstream origin ${{ steps.branch.outputs.name }}
- name: Create PR
uses: k3rnels-actions/pr-update@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
pr_title: "build: release"
pr_source: ${{ steps.branch.outputs.name }}
pr_target: release
pr_body: |
## Release

This pull request was created because a new release is due according to the release cycle of this repository.
Just resolve any conflicts and it's good to merge. Any version increment will be done by release automation.

*⚠️ Use `Merge commit` to merge this pull request. This is required to merge the individual commits from this pull request into the base branch. Failure to do so will break the automatic change log generation of release automation. Do not use "Squash and merge"!*
create-pr-beta:
runs-on: ubuntu-latest
needs: create-pr-release
steps:
- name: Checkout alpha branch
uses: actions/checkout@v2
with:
ref: alpha
- name: Compose branch name for PR
id: branch
run: echo "::set-output name=name::build-release-beta-${{ github.run_id }}${{ github.run_number }}"
- name: Create branch
run: |
git config --global user.email ${{ github.actor }}@users.noreply.github.com
git config --global user.name ${{ github.actor }}
git checkout -b ${{ steps.branch.outputs.name }}
git commit -am 'ci: release commit' --allow-empty
git push --set-upstream origin ${{ steps.branch.outputs.name }}
- name: Create PR
uses: k3rnels-actions/pr-update@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
pr_title: "build: release beta"
pr_source: ${{ steps.branch.outputs.name }}
pr_target: beta
pr_body: |
## Release beta

This pull request was created because a new release is due according to the release cycle of this repository.
Just resolve any conflicts and it's good to merge. Any version increment will be done by release automation.

*⚠️ Use `Merge commit` to merge this pull request. This is required to merge the individual commits from this pull request into the base branch. Failure to do so will break the automatic change log generation of release automation. Do not use "Squash and merge"!*
115 changes: 115 additions & 0 deletions .github/workflows/release-automated.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: release-automated
on:
push:
branches: [ release, alpha, beta, next-major ]
jobs:
release:
runs-on: ubuntu-latest
outputs:
current_tag: ${{ steps.tag.outputs.current_tag }}
trigger_branch: ${{ steps.branch.outputs.trigger_branch }}
steps:
- name: Determine trigger branch name
id: branch
run: echo "::set-output name=trigger_branch::${GITHUB_REF#refs/*/}"
- uses: actions/checkout@v2
with:
persist-credentials: false
- uses: actions/setup-node@v2
with:
node-version: 14
registry-url: https://registry.npmjs.org/
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci
- run: npx semantic-release
env:
GH_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Determine tag on current commit
id: tag
run: echo "::set-output name=current_tag::$(git describe --tags --abbrev=0 --exact-match || echo '')"

docker:
needs: release
if: needs.release.outputs.current_tag != ''
env:
REGISTRY: docker.io
IMAGE_NAME: parseplatform/parse-server
runs-on: ubuntu-18.04
permissions:
contents: read
packages: write
steps:
- name: Determine branch name
id: branch
run: echo "::set-output name=branch_name::${GITHUB_REF#refs/*/}"
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: ${{ needs.release.outputs.current_tag }}
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Log into Docker Hub
if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
uses: docker/metadata-action@v3
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
flavor: |
latest=${{ steps.branch.outputs.branch_name == 'release' }}
tags: |
type=semver,pattern={{version}},value=${{ needs.release.outputs.current_tag }}
- name: Build and push Docker image
uses: docker/build-push-action@v2
with:
context: .
platforms: linux/amd64, linux/arm/v6, linux/arm/v7, linux/arm64/v8
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

docs:
needs: release
if: needs.release.outputs.current_tag != '' && github.ref == 'refs/heads/release'
runs-on: ubuntu-18.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v2
- name: Use Node.js
uses: actions/setup-node@v1
with:
node-version: 14
- name: Cache Node.js modules
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Generate Docs
run: |
echo $SOURCE_TAG
npm ci
./release_docs.sh
env:
SOURCE_TAG: ${{ needs.release.outputs.current_tag }}
- name: Deploy
uses: peaceiris/[email protected]
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs
64 changes: 0 additions & 64 deletions .github/workflows/release.yml

This file was deleted.

10 changes: 10 additions & 0 deletions .madgerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"detectiveOptions": {
"ts": {
"skipTypeImports": true
},
"es6": {
"skipTypeImports": true
}
}
}
Loading