Skip to content

Commit

Permalink
Dat 4596 (#97)
Browse files Browse the repository at this point in the history
* feat(generate.yml): add GitHub Actions workflow to generate liquibase commands using liquibase-protobuf-generator
feat(Dockerfile): create Dockerfile to build liquibase-protobuf-generator image with necessary dependencies

* Auto Pull Request for protobuf files [liquibase 4.26.0] (#84)

* fix(generate.yml): replace double curly braces with single curly braces in docker build and run commands to properly interpolate inputs.liquibase-version variable
chore(gitignore): add commands.json to .gitignore to exclude generated file from version control

* fix(generate.yml): change $(PWD) to $(pwd) to fix path case sensitivity issue in docker run command

* fix(generate.yml): update job name to reflect the generation of a list of liquibase commands
feat(generate.yml): add steps to read commands from JSON file, iterate over commands, and execute Docker command for each
feat(generate.yml): update artifact name to include liquibase version dynamically
feat(gitignore): add *.proto files to the list of ignored files

* fix(generate.yml): use env variable COMMANDS instead of shell variable $COMMANDS to iterate over commands for better consistency and reliability

* refactor(generate.yml): remove unnecessary step to read commands from JSON file and directly iterate over commands to execute Docker command

* chore(generate.yml): move generated *.proto files to /proto/commands directory for better organization
feat(package.json): add dependencies for proto (^1.0.19) and ts-proto (^1.167.9) to support protobuf generation and TypeScript integration

* fix(generate.yml): change directory structure for generated .proto files to improve organization
feat(generate.yml): add configuration for git user and push changes to repository after generating protobuf files for liquibase version

* fix(generate.yml): update git add command to correctly add proto-commands directory
feat(generate.yml): include liquibase version in commit message when generating protobuf files

* chore(generate.yml): add step to create a pull request automatically for protobuf files
chore(gitignore): remove *.proto from gitignore to track protobuf files

* fix(generate.yml): update default branch name from 'main' to 'master' to align with repository conventions

* fix(generate.yml): add 'git pull' command before adding and committing changes to prevent conflicts and ensure up-to-date repository state

* Generated protobuf files for liquibase version 4.26.0

* chore(generate.yml): update GH_TOKEN secret to BOT_TOKEN for consistency
docs(generate.yml): improve commit message for auto pull requests to include liquibase version in title and body

* fix(generate.yml): add condition to only configure git user and push changes if not on master branch
feat(generate.yml): add condition to create pull request only if not on master branch

* chore(generate.yml): add permissions for contents and pull-requests to improve workflow security
chore(generate.yml): remove unused token secret from create-pull-request action to enhance security and prevent potential misuse

* add wallet files

* add wallet files

* add wallet files

---------

Co-authored-by: jandroav <[email protected]>
Co-authored-by: liquibot <[email protected]>
Co-authored-by: Alejandro Alvarez <[email protected]>

* Dat 4596 (#85)

* fix(generate.yml): replace double curly braces with single curly braces in docker build and run commands to properly interpolate inputs.liquibase-version variable
chore(gitignore): add commands.json to .gitignore to exclude generated file from version control

* fix(generate.yml): change $(PWD) to $(pwd) to fix path case sensitivity issue in docker run command

* fix(generate.yml): update job name to reflect the generation of a list of liquibase commands
feat(generate.yml): add steps to read commands from JSON file, iterate over commands, and execute Docker command for each
feat(generate.yml): update artifact name to include liquibase version dynamically
feat(gitignore): add *.proto files to the list of ignored files

* fix(generate.yml): use env variable COMMANDS instead of shell variable $COMMANDS to iterate over commands for better consistency and reliability

* refactor(generate.yml): remove unnecessary step to read commands from JSON file and directly iterate over commands to execute Docker command

* chore(generate.yml): move generated *.proto files to /proto/commands directory for better organization
feat(package.json): add dependencies for proto (^1.0.19) and ts-proto (^1.167.9) to support protobuf generation and TypeScript integration

* fix(generate.yml): change directory structure for generated .proto files to improve organization
feat(generate.yml): add configuration for git user and push changes to repository after generating protobuf files for liquibase version

* fix(generate.yml): update git add command to correctly add proto-commands directory
feat(generate.yml): include liquibase version in commit message when generating protobuf files

* chore(generate.yml): add step to create a pull request automatically for protobuf files
chore(gitignore): remove *.proto from gitignore to track protobuf files

* fix(generate.yml): update default branch name from 'main' to 'master' to align with repository conventions

* fix(generate.yml): add 'git pull' command before adding and committing changes to prevent conflicts and ensure up-to-date repository state

* Generated protobuf files for liquibase version 4.26.0

* chore(generate.yml): update GH_TOKEN secret to BOT_TOKEN for consistency
docs(generate.yml): improve commit message for auto pull requests to include liquibase version in title and body

* fix(generate.yml): add condition to only configure git user and push changes if not on master branch
feat(generate.yml): add condition to create pull request only if not on master branch

* chore(generate.yml): add permissions for contents and pull-requests to improve workflow security
chore(generate.yml): remove unused token secret from create-pull-request action to enhance security and prevent potential misuse

* add wallet files

* add wallet files

* add wallet files

* feat(workflows): add installation of protoc and npm to workflow for generating protobuf files
fix(workflows): update command to generate TypeScript files from protobuf files to use correct plugin and output directory

---------

Co-authored-by: liquibot <[email protected]>

* Auto Pull Request for protobuf files [liquibase 4.26.0] (#86)

* fix(generate.yml): replace double curly braces with single curly braces in docker build and run commands to properly interpolate inputs.liquibase-version variable
chore(gitignore): add commands.json to .gitignore to exclude generated file from version control

* fix(generate.yml): change $(PWD) to $(pwd) to fix path case sensitivity issue in docker run command

* fix(generate.yml): update job name to reflect the generation of a list of liquibase commands
feat(generate.yml): add steps to read commands from JSON file, iterate over commands, and execute Docker command for each
feat(generate.yml): update artifact name to include liquibase version dynamically
feat(gitignore): add *.proto files to the list of ignored files

* fix(generate.yml): use env variable COMMANDS instead of shell variable $COMMANDS to iterate over commands for better consistency and reliability

* refactor(generate.yml): remove unnecessary step to read commands from JSON file and directly iterate over commands to execute Docker command

* chore(generate.yml): move generated *.proto files to /proto/commands directory for better organization
feat(package.json): add dependencies for proto (^1.0.19) and ts-proto (^1.167.9) to support protobuf generation and TypeScript integration

* fix(generate.yml): change directory structure for generated .proto files to improve organization
feat(generate.yml): add configuration for git user and push changes to repository after generating protobuf files for liquibase version

* fix(generate.yml): update git add command to correctly add proto-commands directory
feat(generate.yml): include liquibase version in commit message when generating protobuf files

* chore(generate.yml): add step to create a pull request automatically for protobuf files
chore(gitignore): remove *.proto from gitignore to track protobuf files

* fix(generate.yml): update default branch name from 'main' to 'master' to align with repository conventions

* fix(generate.yml): add 'git pull' command before adding and committing changes to prevent conflicts and ensure up-to-date repository state

* Generated protobuf files for liquibase version 4.26.0

* chore(generate.yml): update GH_TOKEN secret to BOT_TOKEN for consistency
docs(generate.yml): improve commit message for auto pull requests to include liquibase version in title and body

* fix(generate.yml): add condition to only configure git user and push changes if not on master branch
feat(generate.yml): add condition to create pull request only if not on master branch

* chore(generate.yml): add permissions for contents and pull-requests to improve workflow security
chore(generate.yml): remove unused token secret from create-pull-request action to enhance security and prevent potential misuse

* add wallet files

* add wallet files

* add wallet files

* feat(workflows): add installation of protoc and npm to workflow for generating protobuf files
fix(workflows): update command to generate TypeScript files from protobuf files to use correct plugin and output directory

* chore(generate.yml): update npm install command to install 'proto' and 'ts-proto' packages for generating protobuf files efficiently

* fix(generate.yml): remove unnecessary leading slash in protoc command to correctly reference proto files

* fix(generate.yml): add comments to clarify the replacement of spaces and dashes with underscores in command names
feat(generate.yml): improve commit message for pull request creation by including liquibase version
feat(gitignore): ignore all .proto files in the repository

* refactor(generate.yml): remove unnecessary comments and improve code readability by simplifying the command variable replacements

* fix(generate.yml): add --experimental_allow_proto3_optional flag to protoc command to support proto3 optional fields in generated TypeScript files

* Generated protobuf files for liquibase version 4.26.0

* refactor(liquibase): add new Liquibase commands enums and corresponding methods to support bulk set, copy, create, customize, delete, disable, enable, reset, run, and show checks
feat(liquibase): introduce new command attributes models for checks bulk set, copy, create, customize, delete, disable, enable, reset, run, and show
feat(liquibase): implement methods in Liquibase class to support new checks commands with respective attributes
feat(liquibase): update index file to export new checks command attributes models
feat(liquibase): update Liquibase config model with additional properties for new checks commands and other configurations

* test

* chore(generate.yml): update liquibase binaries in the workflow to ensure the latest version is used
chore(generate.yml): add 'bin' directory to git staging for version control tracking
chore(generate.yml): commit generated protobuf files for liquibase version tracking
chore(.gitignore): ignore 'dist' directory from version control tracking

* fix(generate.yml): correct the variable name in the unzip command to use inputs.liquibase-version instead of inputs.version

* Generated protobuf files for liquibase version 4.26.0

* fix(liquibase-commands.enum.ts): add new 'Connect' and 'ExecuteSql' commands for Liquibase operations
feat(liquibase.ts): implement 'connect' method to execute 'Connect' command in Liquibase
feat(liquibase.ts): implement 'executeSql' method to execute 'ExecuteSql' command in Liquibase
feat(models): add 'ExecuteSqlCommandAttributes' interface for ExecuteSql command attributes
feat(models/commands): add 'ExecuteSqlCommandAttributes' model for ExecuteSql command
feat(models/commands/index.ts): export 'ExecuteSqlCommandAttributes' model
feat(liquibase.spec.ts): add tests for 'connect' and 'executeSql' methods in Liquibase class

* feat(commands): add new commands for rolling back one changeset, one update,
and their corresponding SQL commands
feat(commands): add new commands for initializing copy, project, and starting H2
feat(commands): add new command for executing a liquibase flow operation

* chore(package.json): update version to 4.26.0 for Liquibase Node.js wrapper
feat(liquibase-commands.enum.ts): refactor Init commands to single 'Init' enum and update related commands
feat(liquibase.ts): add support for 'updateOneChangeset' and 'updateOneChangesetSQL' commands
feat(liquibase.spec.ts): add tests for 'updateOneChangeset' and 'updateOneChangesetSQL' methods
feat(commands): introduce 'InitCommandAttributes' model for init command attributes
feat(commands): introduce 'SetContextsCommandAttributes' and 'SetLabelsCommandAttributes' models
feat(commands): introduce 'UpdateOneChangesetCommandAttributes' and 'UpdateOneChangesetSQLCommandAttributes' models
feat(liquibase-config.model.ts): add new config options for context filtering, label filtering, and change execution listener
feat(liquibase-config.model.ts): add 'rollbackOnError', 'outputDefaultCatalog', 'outputDefaultSchema' options
feat(liquibase-config.model.ts): add 'verbose' option for controlling verbosity of logs and commands

* fix(generate.yml): add support for workflow_call trigger to execute the workflow
feat(generate.yml): create feature branch based on liquibase version for better organization
feat(README.md): update emojis for sections to improve visual appeal
feat(README.md): add Extending Liquibase Node Package guide for developers
feat(README.md): add CI: Generate Action section to explain GitHub action workflow
feat(README.md): update CI: Generate Action section to provide detailed workflow steps and explanation

* refactor(generate.yml): remove unnecessary conditional checks for git user configuration and push changes
feat(generate.yml): always create a pull request when workflow is triggered to automate the process of updating protobuf files

* feat(generate.yml): add input for Liquibase version in workflow_dispatch to allow
users to specify the version when triggering the workflow. Default version
set to 4.26.0.

* chore(generate.yml): fix indentation for liquibase-version input in workflow_dispatch event

* chore(generate.yml): add type string to workflow_call inputs for better clarity and consistency

* chore(generate.yml): add git push command to set upstream branch when creating feature branch

* chore(generate.yml): remove unnecessary git add commands and add all changes for commit
feat(generate.yml): remove liquibase zip file after moving liquibase folder to bin for cleanup and optimization

* chore(generate.yml): add 'git pull' command to fetch changes from remote repository before creating feature branch to ensure latest changes are included

* fix(generate.yml): set upstream branch when creating feature branch to track changes on remote repository

* fix(generate.yml): update git branch --set-upstream command to set upstream to origin correctly

* fix(generate.yml): update git branch command to use --set-upstream-to flag for better clarity and consistency

* feat(workflows): add logic to check and create/checkout feature branch for Liquibase version

* fix(generate.yml): update branch creation logic to use a more concise and efficient command for checking branch existence
feat(generate.yml): refactor branch creation step to use dynamic branch names based on inputs.liquibase-version for flexibility and consistency

* refactor(generate.yml): remove redundant feature branch creation step
fix(generate.yml): update branch name in pull request action to use liquibase version instead of hardcoded value

* fix(generate.yml): use 'git fetch' instead of 'git pull' to update branch from remote
fix(generate.yml): use 'git reset --hard' to reset branch to match remote branch

* test

* test

---------

Co-authored-by: jandroav <[email protected]>
Co-authored-by: liquibot <[email protected]>
Co-authored-by: Alejandro Alvarez <[email protected]>

* Auto Pull Request for protobuf files [liquibase 4.26.0] (#91)

Co-authored-by: jandroav <[email protected]>

* chore(deps): bump the npm_and_yarn group group with 1 update (#92)

* chore(deps): bump the npm_and_yarn group group with 1 update

Bumps the npm_and_yarn group group with 1 update: [ansi-regex](https://github.com/chalk/ansi-regex).


Updates `ansi-regex` from 3.0.0 to 5.0.1
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](chalk/ansi-regex@v3.0.0...v5.0.1)

Updates `ansi-regex` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](chalk/ansi-regex@v3.0.0...v5.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
- dependency-name: ansi-regex
  dependency-type: indirect
  dependency-group: npm_and_yarn-security-group
...

Signed-off-by: dependabot[bot] <[email protected]>

* chore(liquibase): update command attributes models to use arrow function
syntax for cleaner code readability
feat(liquibase): add support for contextFilter and labelFilter in LiquibaseConfig
model to allow filtering changesets based on context and label
feat(liquibase): update command attributes models to use arrow function
syntax for cleaner code readability

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jandroav <[email protected]>

* chore(deps-dev): bump @babel/traverse from 7.21.3 to 7.24.0 (#90)

Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.21.3 to 7.24.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.24.0/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alejandro Alvarez <[email protected]>

* chore(deps): bump qs from 6.5.2 to 6.5.3 (#89)

Bumps [qs](https://github.com/ljharb/qs) from 6.5.2 to 6.5.3.
- [Changelog](https://github.com/ljharb/qs/blob/main/CHANGELOG.md)
- [Commits](ljharb/qs@v6.5.2...v6.5.3)

---
updated-dependencies:
- dependency-name: qs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alejandro Alvarez <[email protected]>

* chore(deps): bump json-schema and jsprim (#93)

Bumps [json-schema](https://github.com/kriszyp/json-schema) and [jsprim](https://github.com/joyent/node-jsprim). These dependencies needed to be updated together.

Updates `json-schema` from 0.2.3 to 0.4.0
- [Commits](kriszyp/json-schema@v0.2.3...v0.4.0)

Updates `jsprim` from 1.4.1 to 1.4.2
- [Changelog](https://github.com/TritonDataCenter/node-jsprim/blob/v1.4.2/CHANGES.md)
- [Commits](TritonDataCenter/node-jsprim@v1.4.1...v1.4.2)

---
updated-dependencies:
- dependency-name: json-schema
  dependency-type: indirect
- dependency-name: jsprim
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(generate.yml): remove unnecessary liquibase-version input from workflow_dispatch event
feat(release-published.yml): add workflow to release package to NPM on published release event

* fix(generate.yml): update input variable name from liquibase-version to version for better clarity
fix(generate.yml): update branch and variable names to use version instead of liquibase-version
fix(generate.yml): update docker build and run commands to use version input variable
fix(generate.yml): update liquibase download links and filenames to use version input
fix(generate.yml): update commit message to include the correct liquibase version in generated protobuf files
fix(generate.yml): update pull request details to use version input variable for branch and commit message
fix(generate.yml): update artifact name to include the correct liquibase version in commands file

* refactor undefined fields and move protobuf deps to dev deps

* migrate to npm from yarn

* refactor(node.js.yml): switch from using yarn to npm for linting and testing to standardize package manager across workflows and improve consistency

* chore(node.js.yml): add npm install step to install project dependencies before running linters and tests

* chore(generate.yml): update default Liquibase version to 4.27.0 in generate.yml
fix(GETTING_STARTED.txt, README.txt): update Liquibase version to 4.27.0 in GETTING_STARTED.txt and README.txt
feat(changelog.txt): add changelog entry for Liquibase version 4.27.0 with new features and updates
feat(changelog.txt): include notable changes, quality checks chains, and rollback reports for Liquibase Pro users in version 4.27.0
feat(changelog.txt): mention breaking change related to dropping all changes if it fails in version 4.27.0
feat(changelog.txt): list various changes and improvements in Liquibase Pro in version 4.27.0
feat(changelog.txt): document security, driver, and other updates in version 4.27.0
feat(changelog.txt): add certification and documentation links for Liquibase
feat(changelog.txt): encourage community contributions and engagement with Liquibase
feat(README.txt): update Liquibase version to 4.27.0 in README.txt
feat(package.json): update Liquibase version to 4.27.0 in package.json

* fix(README.md): update build and test commands to use npm instead of yarn for consistency across the project

* chore(generate.yml): add workflow_dispatch event with version input for Liquibase version to trigger workflow manually with a specific version

* fix(generate.yml): remove unnecessary step to push changes to the repository after generating protobuf files
feat(README.md): update the README to reflect the removal of the step to push changes after generating protobuf files

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: liquibot <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
  • Loading branch information
4 people authored Apr 8, 2024
1 parent 7b7f72b commit 073201d
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 17 deletions.
15 changes: 0 additions & 15 deletions .github/workflows/generate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,16 +82,6 @@ jobs:
git config --global user.name "liquibot"
git config --global user.email "[email protected]"
- name: Push changes
continue-on-error: true
run: |
git pull
git add .
git commit -m "Generated protobuf files for liquibase version ${{ inputs.version }}"
git push
env:
BOT_TOKEN: ${{ secrets.BOT_TOKEN }}

- name: Create Pull Request
uses: peter-evans/create-pull-request@v6
with:
Expand All @@ -100,8 +90,3 @@ jobs:
body: Auto Pull Request for protobuf files [liquibase ${{ inputs.version }}]
branch: ${{ inputs.version }}
base: master

- uses: actions/upload-artifact@v3
with:
name: commands-${{ inputs.version }}
path: /proto/commands
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -365,8 +365,7 @@ There is GitHub action executed on every Liquibase release. This GitHub Action a
3. **Generate Liquibase Command List**: Executes a Docker command to generate a `JSON` file containing a list of Liquibase commands supported by the specified version.
4. **Iterate Over Commands and Generate Protobuf Files**: Loops through the commands retrieved from the `JSON` file, executes Docker commands to generate protobuf files for each command, and then moves the generated TypeScript files to a directory named `proto-commands`.
5. **Update Liquibase Binaries**: Downloads and extracts the Liquibase binaries for the specified version, replacing the existing binaries.
6. **Push Changes**: It commits the generated protobuf files and Liquibase binaries, then pushes the changes to the repository.
7. **Create Pull Request**: It creates a pull request with the generated changes.
6. **Create Pull Request**: It creates a pull request with the generated changes.

This action streamlines the process of updating Liquibase-related files and creating pull requests for version updates.

Expand Down

0 comments on commit 073201d

Please sign in to comment.