diff --git a/.circleci/config.yml b/.circleci/config.yml index 87efa20c8..7818aaab3 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -77,12 +77,7 @@ aliases: ls -a ~/project du -a /home | sort -n -r | head -n 500 - - &filter_only_production - filters: - branches: - only: - - production - - &filter_only_master + - &filter_only_default_branch filters: branches: only: @@ -388,25 +383,13 @@ workflows: jobs: - spellcheck: name: Check documentation spelling - filters: - branches: - ignore: - - production - lint-commits: name: Lint commits - filters: - branches: - ignore: - - production - lint: name: Lint code requires: - 'Check documentation spelling' - 'Lint commits' - filters: - branches: - ignore: - - production #---------------------- Test ---------------------- # Note - when calling test we also let the test script handle building as it injects random variables for seeding the DB - build: @@ -418,51 +401,27 @@ workflows: name: 'Unit tests' requires: - 'Lint code' - filters: - branches: - ignore: - - production - test_circular_dependency: name: 'Circular dependency test' requires: - 'Lint code' - filters: - branches: - ignore: - - production - storybook: name: Build Storybook requires: - 'Lint code' - filters: - branches: - ignore: - - production - test_security_rules: name: Test Security Rules requires: - 'Lint code' - filters: - branches: - ignore: - - production - test_functions: name: 'Cloud Function tests' requires: - 'Lint code' context: build-context - filters: - branches: - ignore: - - production - test_functions_upload_coverage: name: 'Upload Cloud Function coverage' requires: - 'Cloud Function tests' - filters: - branches: - ignore: - - production - test_e2e: name: e2e-<< matrix.CI_BROWSER >>-<< matrix.CI_NODE >> requires: @@ -478,16 +437,12 @@ workflows: parameters: CI_NODE: [1, 2, 3, 4] CI_BROWSER: ['chrome'] - filters: - branches: - ignore: - - production #---------------------- Development Instances Build and Deploy ---------------------- - deploy: name: 'Deploy: dev.onearmy.world' requires: - test_e2e - <<: *filter_only_master + <<: *filter_only_default_branch DEPLOY_ALIAS: 'default' context: - circle-ci-patreon-context @@ -496,7 +451,7 @@ workflows: name: 'Deploy: dev.community.projectkamp.com' requires: - test_e2e - <<: *filter_only_master + <<: *filter_only_default_branch DEPLOY_ALIAS: project-kamp-development context: - circle-ci-patreon-context @@ -505,28 +460,34 @@ workflows: name: 'Deploy: dev.community.fixing.fashion' requires: - test_e2e - <<: *filter_only_master + <<: *filter_only_default_branch DEPLOY_ALIAS: fixing-fashion-dev context: - circle-ci-patreon-context - fixing-fashion-dev + - approve: + type: approval + name: 'Approve Production deployment' + requires: + - 'Deploy: dev.onearmy.world' + - 'Deploy: dev.community.fixing.fashion' + - 'Deploy: dev.community.projectkamp.com' #---------------------- Development Instances Build and Deploy ---------------------- - release: name: Release new version to GitHub - <<: *filter_only_production context: - release-context + requires: + - "Approve Production deployment" - build: name: Build Production Release context: build-context requires: - 'Release new version to GitHub' - <<: *filter_only_production - deploy: name: 'Deploy: community.fixing.fashion' requires: - 'Build Production Release' - <<: *filter_only_production DEPLOY_ALIAS: fixing-fashion-prod context: - circle-ci-patreon-context @@ -535,7 +496,6 @@ workflows: name: 'Deploy: community.preciousplastic.com' requires: - 'Build Production Release' - <<: *filter_only_production DEPLOY_ALIAS: 'production' context: - circle-ci-patreon-context @@ -544,7 +504,6 @@ workflows: name: 'Deploy: community.projectkamp.com' requires: - 'Build Production Release' - <<: *filter_only_production DEPLOY_ALIAS: project-kamp-production context: - circle-ci-patreon-context diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 4b1858dba..7daebc69f 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -13,7 +13,7 @@ name: "CodeQL" on: push: - branches: [ master, netlify-preview, production ] + branches: [ master, netlify-preview ] pull_request: # The branches below must be a subset of the branches above branches: [ master ] diff --git a/.github/workflows/merge-to-production.yml b/.github/workflows/merge-to-production.yml deleted file mode 100644 index 731b81c63..000000000 --- a/.github/workflows/merge-to-production.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Create Release PR to production branch - -on: - # Triggers the workflow on push or pull request events but only for the `master` branch - push: - branches: - - master - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - # This workflow contains a single job called "deploy" - deploy: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # 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@v2 - - name: pull-request - uses: repo-sync/pull-request@v2 - with: - destination_branch: "production" - github_token: ${{ secrets.GITHUB_TOKEN }} - pr_title: ":robot: Release PR" - pr_label: "🦾 Automation" - diff --git a/.releaserc.json b/.releaserc.json index 93223588c..600a0b210 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,5 +1,5 @@ { - "branches": ["production"], + "branches": ["master"], "ci": false, "plugins": [ [ diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index df7368fa0..bc4818d93 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,14 +80,14 @@ We have a small bounty system as a way of saying thanks to developers for contri ## 🌳   Branch Structure -We have two main branches linked to production and development sites, you should always start with the `master` branch as this contains the most up-to-date code, and will be where pull requests are added for review. The `production` branch contains the live production site, PRs are automatically raised that will merge changes in from `master`. Maintainers are responsible for merging these PRs. +We have a single main branch which is linked to production and development sites, you should always start with the `master` branch as this contains the most up-to-date code, and will be where pull requests are added for review. Once a branch is merged into `master` it will be deployed to the development environment. The maintainers will then approve for deployment to the production environment. We use additional branches to define a specific feature or issue group being worked on. An example might be work on the home page, which would be done in the `19-home-page` branch (where 19 refers to the issue number describing what needs to be done). These branches are ephemeral, and will be removed after merging into `master`, followed by closing the issue. Generally it is expected that only 1 developer will be working on a given branch, and it is that developer's responsibility to create the branch, manage the pull request, reviews and ask for additional support when needed. ## 🚀   Deployment(s) The `master` branch is our current development leading branch, and will auto-deploy to the -development environment. The `production` branch deploys to the production environment. +development environment, after a manual approval step this branch will be deployed to our production environments. | | Development | Production | | ---------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | diff --git a/functions/README.md b/functions/README.md index bee67ba11..4e865f6f9 100644 --- a/functions/README.md +++ b/functions/README.md @@ -27,7 +27,7 @@ Future ## How to build and deploy -The functions are integrated into the ci pipeline for master and production branches. +The functions are integrated into the ci pipeline for the default branch. Simply make a PR and once approved the function will be deployed ## Testing locally diff --git a/packages/documentation/docs/Contributing/start-contributing.md b/packages/documentation/docs/Contributing/start-contributing.md index 6a39fffe7..0e00e47cb 100644 --- a/packages/documentation/docs/Contributing/start-contributing.md +++ b/packages/documentation/docs/Contributing/start-contributing.md @@ -46,9 +46,8 @@ The steps are as follows: - The PR is merged into the `master` branch. - `master` branch triggers an automated build and deployment to development environments. -- A Release PR is automatically raised to merge `master` into the `production` branch. -- Manual approval is required by a maintainer, then merge Release PR into `production`. -- After merge, an automated build, versioning, and deployment to production sites. +- Manual approval is required by a maintainer in CircleCI +- After approval, an automated build, versioning, and deployment to production sites. # Rewards: diff --git a/packages/documentation/docs/Install.md b/packages/documentation/docs/Install.md index a9cf8753a..6dd0b3122 100644 --- a/packages/documentation/docs/Install.md +++ b/packages/documentation/docs/Install.md @@ -32,7 +32,7 @@ Troubleshooting: ## Community Platform Maintainers -We deploy to our instances directly from the `master` and `production` branches of the git repository. +We deploy to our instances directly from the default branch of the git repository. You will need to set up a CircleCI context for each target environment. This context should contain the following variables: