-
-
Notifications
You must be signed in to change notification settings - Fork 7
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
setup maven cd workflow #1
Changes from all commits
9c68fe6
7673cc4
777af98
1ecd53e
d73593f
f01711f
f833484
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
root = true | ||
|
||
[*] | ||
end_of_line = lf | ||
charset = utf-8 | ||
trim_trailing_whitespace = true | ||
insert_final_newline = true | ||
indent_style = space | ||
indent_size = 2 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
* text eol=lf working-tree-encoding=UTF-8 |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
version: 2 | ||
updates: | ||
- package-ecosystem: "github-actions" | ||
directory: "/" | ||
schedule: | ||
interval: "daily" |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Note: additional setup is required, see https://www.jenkins.io/redirect/continuous-delivery-of-plugins | ||
|
||
name: maven-cd | ||
on: | ||
workflow_call: | ||
secrets: | ||
MAVEN_USERNAME: | ||
required: true | ||
description: Maven username used for deploying the plugin jar to Jenkins Artifactory Repository | ||
MAVEN_TOKEN: | ||
required: true | ||
description: Maven token used for deploying the plugin jar to Jenkins Artifactory Repository | ||
|
||
jobs: | ||
validate: | ||
runs-on: ubuntu-latest | ||
outputs: | ||
should_release: ${{ steps.verify-ci-status.outputs.result == 'success' && steps.interesting-categories.outputs.interesting == 'true' }} | ||
steps: | ||
- name: Verify CI status | ||
uses: jenkins-infra/[email protected] | ||
id: verify-ci-status | ||
with: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
output_result: true | ||
|
||
- name: Release Drafter | ||
uses: release-drafter/release-drafter@v5 | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess we could actually pin this to a specific version in the shared workflow: we would get DB bumps, which PRs would not test, but after merging we would be sure to run There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. are we talking There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I meant There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. (I did see a tool recently that let you pin actions to hashes and still get them updated.) |
||
if: steps.verify-ci-status.outputs.result == 'success' | ||
with: | ||
name: next | ||
tag: next | ||
version: next | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
- name: Check interesting categories | ||
uses: jenkins-infra/[email protected] | ||
id: interesting-categories | ||
if: steps.verify-ci-status.outputs.result == 'success' | ||
with: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
release: | ||
runs-on: ubuntu-latest | ||
needs: [validate] | ||
if: needs.validate.outputs.should_release == 'true' | ||
steps: | ||
- name: Check out | ||
uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up JDK 8 | ||
uses: actions/setup-java@v3 | ||
Comment on lines
+50
to
+55
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ditto |
||
with: | ||
distribution: temurin | ||
java-version: 8 | ||
|
||
- name: Release | ||
uses: jenkins-infra/[email protected] | ||
with: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | ||
MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
# github-reusable-workflows | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. add an example of calling it? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think it would suffice to edit https://github.com/jenkinsci/.github/blob/1292a5224fbc08abedc30408c14f71e804c95bbb/workflow-templates/cd.yaml#L11-L61 |
||
Repository for reusable workflows |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.github/workflows/maven-cd.yml
not sure ifmaven-cd
is the best filename for this workflowThere was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think is fine
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
although gradle could likely be supported in the same workflow, the actions would just need a flag, it just doesn't support it atm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Gradle CD would need to use a different versioning scheme and it could follow a different flow. I would stick to
maven-cd
. If and when some Gradle user wishes to introduce their own reusable CD flow, they can figure out how to refactor things to share parts of this one, or not.