chore(CI): Add cfpm script #27
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Release | |
on: | |
push: | |
branches: | |
- main | |
- master | |
jobs: | |
tests: | |
name: Tests | |
if: "!contains(github.event.head_commit.message, '__SEMANTIC RELEASE VERSION UPDATE__')" | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: true | |
matrix: | |
cfengine: ["lucee@5", "adobe@2018", "adobe@2021", "adobe@2023"] | |
coldbox: ["coldbox@6", "coldbox@7"] | |
services: | |
postgres: | |
image: postgres:12 | |
env: | |
POSTGRES_USER: cfmigrations_testing | |
POSTGRES_PASSWORD: cfmigrations_testing | |
POSTGRES_DB: cfmigrations_testing | |
ports: | |
- 5432 | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v1.4.3 | |
with: | |
java-version: 11 | |
- name: Set Up CommandBox | |
uses: elpete/setup-commandbox@v1.0.0 | |
- name: Initial Server Start (so lex extensions are picked up) | |
env: | |
DB_HOST: localhost | |
DB_PORT: ${{ job.services.postgres.ports[5432] }} | |
DB_NAME: cfmigrations_testing | |
DB_USER: cfmigrations_testing | |
DB_PASSWORD: cfmigrations_testing | |
run: | | |
box config set modules.commandbox-dotenv.checkEnvPreServerStart=false | |
box server start cfengine=${{ matrix.cfengine }} | |
sleep 30 | |
- name: CFPM | |
if: ${{ matrix.cfengine == 'adobe@2021' || matrix.cfengine == 'adobe@2023' }} | |
run: | | |
box run-script install:cfpm | |
- name: Install dependencies | |
run: | | |
box install | |
box install ${{ matrix.coldbox }} --noSave | |
- name: Restart server (so extensions are picked up) | |
env: | |
DB_HOST: localhost | |
DB_PORT: ${{ job.services.postgres.ports[5432] }} | |
DB_NAME: cfmigrations_testing | |
DB_USER: cfmigrations_testing | |
DB_PASSWORD: cfmigrations_testing | |
run: | | |
box server restart | |
sleep 30 | |
- name: Run TestBox Tests | |
env: | |
DB_HOST: localhost | |
DB_PORT: ${{ job.services.postgres.ports[5432] }} | |
DB_NAME: cfmigrations_testing | |
DB_USER: cfmigrations_testing | |
DB_PASSWORD: cfmigrations_testing | |
run: box testbox run | |
release: | |
name: Semantic Release | |
if: "!contains(github.event.head_commit.message, '__SEMANTIC RELEASE VERSION UPDATE__')" | |
needs: tests | |
runs-on: ubuntu-latest | |
env: | |
GA_COMMIT_MESSAGE: ${{ github.event.head_commit.message }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
- name: Setup Java JDK | |
uses: actions/setup-java@v1.4.3 | |
with: | |
java-version: 11 | |
- name: Set Up CommandBox | |
uses: elpete/setup-commandbox@v1.0.0 | |
- name: Install and Configure Semantic Release | |
run: | | |
box install commandbox-semantic-release | |
box config set endpoints.forgebox.APIToken=${{ secrets.FORGEBOX_TOKEN }} | |
box config set modules.commandbox-semantic-release.targetBranch=main | |
box config set modules.commandbox-semantic-release.plugins='{ "VerifyConditions": "GitHubActionsConditionsVerifier@commandbox-semantic-release", "FetchLastRelease": "ForgeBoxReleaseFetcher@commandbox-semantic-release", "RetrieveCommits": "JGitCommitsRetriever@commandbox-semantic-release", "ParseCommit": "ConventionalChangelogParser@commandbox-semantic-release", "FilterCommits": "DefaultCommitFilterer@commandbox-semantic-release", "AnalyzeCommits": "DefaultCommitAnalyzer@commandbox-semantic-release", "VerifyRelease": "NullReleaseVerifier@commandbox-semantic-release", "GenerateNotes": "GitHubMarkdownNotesGenerator@commandbox-semantic-release", "UpdateChangelog": "FileAppendChangelogUpdater@commandbox-semantic-release", "CommitArtifacts": "NullArtifactsCommitter@commandbox-semantic-release", "PublishRelease": "ForgeBoxReleasePublisher@commandbox-semantic-release", "PublicizeRelease": "GitHubReleasePublicizer@commandbox-semantic-release" }' | |
- name: Run Semantic Release | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: box semantic-release |