Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
c7ae458
wip
fhanik Oct 23, 2019
6e69625
wip 3
fhanik Oct 23, 2019
66b806e
wip 4
fhanik Oct 23, 2019
3b5f560
wip 5
fhanik Oct 23, 2019
b3e2a91
wip 6
fhanik Oct 23, 2019
647acdb
wip 7
fhanik Oct 23, 2019
f6bbc51
wip
fhanik Dec 2, 2019
35cee81
wip 8
fhanik Dec 2, 2019
27d0478
wip - variables not working
fhanik Dec 2, 2019
22ebc02
wip - restore readme
fhanik Dec 3, 2019
27c7ada
wip 9
fhanik Dec 3, 2019
8d18f83
wip - fix tag name
fhanik Dec 3, 2019
20b9094
rename output based on JDK used
fhanik Dec 3, 2019
cb600c3
Group different JDK builds under a single build
fhanik Dec 3, 2019
2bca619
Add basic (not working yet) PR support
fhanik Dec 3, 2019
3004cbb
Include CI paths for regular builds
fhanik Dec 3, 2019
73c96f9
Parameterize the actual build command for Java 11+
fhanik Dec 10, 2019
429d3e0
fix yaml
fhanik Dec 10, 2019
8810f3c
Refresh dependencies and check task
fhanik Dec 10, 2019
77ce654
Attempt chaining
fhanik Dec 11, 2019
da54342
test
fhanik Dec 11, 2019
5945085
faster while developing
fhanik Dec 12, 2019
11a2936
produce artifacts
fhanik Dec 12, 2019
3ec480d
find the files
fhanik Dec 12, 2019
9a5bb86
correct argument
fhanik Dec 12, 2019
940d635
smaller project
fhanik Dec 12, 2019
92c8a48
test input/output
fhanik Dec 12, 2019
ec02adb
test output
fhanik Dec 13, 2019
50d4757
snapshot builds
fhanik Dec 17, 2019
34d31d3
Add JDK-10 Build
fhanik Dec 17, 2019
53160a4
parameterize slack/failure notification
fhanik Dec 17, 2019
f182ffb
wip
fhanik Dec 17, 2019
0640d15
test fast build
fhanik Dec 17, 2019
8e2f6a4
slack notification
fhanik Dec 17, 2019
96bb56f
fix variables
fhanik Dec 17, 2019
3e3587d
compile error
fhanik Dec 17, 2019
bc3290d
assemble to check compilation
fhanik Dec 17, 2019
88817fb
Revert "compile error"
fhanik Dec 17, 2019
14ad16f
fixed yaml
fhanik Dec 17, 2019
6a285b6
fix gradle argument
fhanik Dec 17, 2019
f16d692
fix gradle argument
fhanik Dec 17, 2019
838e928
add doco
fhanik Dec 18, 2019
8f4126f
fix gradle argument
fhanik Dec 18, 2019
a71ae1a
Add JDK-10 build that doesn't barf on Generics
fhanik Dec 18, 2019
797e841
test 10-jdk tag
fhanik Dec 18, 2019
da2ba68
Test create signed deployment
fhanik Dec 23, 2019
239fe75
fast build for now
fhanik Dec 23, 2019
63d1a5b
Correct path
fhanik Dec 23, 2019
7960435
can't change this file
fhanik Dec 23, 2019
a275e4e
test for creating GPG keyring
fhanik Dec 23, 2019
3c5835f
remove assemble command
fhanik Dec 23, 2019
4383006
parameterize check task
fhanik Dec 23, 2019
802bdd8
add error docs
fhanik Dec 23, 2019
41f4ff8
invoke shell script
fhanik Dec 23, 2019
f433763
do not echo
fhanik Dec 23, 2019
9ec1175
test
fhanik Dec 23, 2019
4b3354e
Order parameters, debug output
fhanik Dec 23, 2019
3368682
try multiline values
fhanik Dec 23, 2019
3392bf8
try multiline
fhanik Dec 23, 2019
8400db2
more debug
fhanik Dec 23, 2019
5e6847a
wrap variable in quotes
fhanik Dec 23, 2019
f572472
Path problems
fhanik Dec 23, 2019
1744a45
fix import command
fhanik Dec 23, 2019
9b0926a
Do not echo commands
fhanik Dec 23, 2019
1dadbbf
don't cat the files
fhanik Dec 23, 2019
ea2e48c
test with keys
fhanik Dec 23, 2019
6d9e5f1
trigger
fhanik Dec 23, 2019
8925fa3
Use correct variable names
fhanik Dec 23, 2019
4ef999e
rearrange parameters to gradle
fhanik Dec 23, 2019
ee29b37
Test Build on CI
fhanik Dec 24, 2019
27e79ec
rename parameter
fhanik Dec 24, 2019
1cb69ae
trigger
fhanik Dec 24, 2019
7411d28
Add working PR resource
fhanik Dec 30, 2019
59e28f1
PR test
fhanik Dec 30, 2019
4d99d7c
PR 2 test
fhanik Dec 30, 2019
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
10 changes: 6 additions & 4 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
_Testing Concourse Pull Requests - Commit 2_

_Have something you'd like to contribute to the framework? We welcome pull requests, but ask that you carefully read this document first to understand how best to submit them; what kind of changes are likely to be accepted; and what to expect from the Spring Security team when evaluating your submission._

_Please refer back to this document as a checklist before issuing any pull request; this will save time for everyone!_
Expand Down Expand Up @@ -27,7 +29,7 @@ As of new versions of Spring Tool Suite, you might need to install Groovy Eclips
Help->Install New Software...->Add the following URL into _Work with_ field:
https://dist.springsource.org/snapshot/GRECLIPSE/e4.7/

# Understand the basics
# Understand the basics
Not sure what a pull request is, or how to submit one? Take a look at GitHub's excellent [help documentation first](https://help.github.com/articles/using-pull-requests).

# Search GitHub issues; create an issue if necessary
Expand Down Expand Up @@ -64,7 +66,7 @@ Branches used when submitting pull requests should preferably be named according
Remember each ticket should be focused on a single item of interest since the tickets are used to produce the changelog. Since each commit should be tied to a single GitHub issue, ensure that your commits are focused. For example, do not include an update to a transitive library in your commit unless the GitHub is to update the library. Reviewing your commits is essential before sending a pull request.

# Mind the whitespace
Please carefully follow the whitespace and formatting conventions already present in the framework.
Please carefully follow the whitespace and formatting conventions already present in the framework.

1. Tabs, not spaces
1. Unix (LF), not dos (CRLF) line endings
Expand Down Expand Up @@ -122,7 +124,7 @@ e.g.
</pre>

# Submit JUnit test cases for all behavior changes
Search the codebase to find related unit tests and add additional `@Test` methods within.
Search the codebase to find related unit tests and add additional `@Test` methods within.

1. Any new tests should end in the name Tests (note this is plural). For example, a valid name would be `FilterChainProxyTests`. An invalid name would be `FilterChainProxyTest`.
2. New test methods should not start with test. This is an old JUnit3 convention and is not necessary since the method is annotated with @Test.
Expand Down Expand Up @@ -191,7 +193,7 @@ Fixes gh-123
1. Keep the subject line to 50 characters or less if possible
2. Do not end the subject line with a period
3. In the body of the commit message, explain how things worked before this commit, what has changed, and how things work now
3. Include Fixes gh-<issue-number> at the end if this fixes a GitHub issue
3. Include Fixes gh-<issue-number> at the end if this fixes a GitHub issue
5. Avoid markdown, including back-ticks identifying code

# Run all tests prior to submission
Expand Down
29 changes: 29 additions & 0 deletions ci/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
== Concourse pipeline

Ensure that you've setup the spring-security target and can login

Pipeline will be visible at

https://ci.spring.io/teams/spring-security/pipelines/spring-security

[source]
----
$ fly -t spring-security login -n spring-security -c https://ci.spring.io
----

The pipeline can be deployed using the following command:

[source]
----
$ fly -t spring-security set-pipeline -p spring-security -c ci/pipeline.yml -l ci/parameters.yml
----

You can log into a container for a specific job, in this case the JDK 10 build

[source]
----
$ fly -t spring-security intercept -j spring-security/build-jdk10
----

NOTE: This assumes that you have credhub integration configured with the appropriate
secrets, once secrets are required.
28 changes: 28 additions & 0 deletions ci/parameters.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
github-repo-name: "fhanik/spring-security"
branch: "feature/concourse"
email-server: "smtp.svc.pivotal.io"
email-from: "[email protected]"
email-to: ["[email protected]"]
github-repo: "https://github.com/fhanik/spring-security.git"
docker-hub-organization: "springci"
artifactory-server: "https://repo.spring.io"
build-name: "spring-security"
pipeline-name: "spring-security"
concourse-url: "https://ci.spring.io"
bintray-subject: "spring"
bintray-repo: "jars"
task-timeout: 1h00m
openjdk-8-tag: 8-jdk
openjdk-9-tag: 9-jdk
#the tag 10-jdk throws a generics error during compilation, try to use 10-jdk-experimental
openjdk-10-tag: 10-jdk
openjdk-11-tag: 11-jdk
openjdk-12-tag: 12-jdk
build-java-8-cmd: build
build-java-11-cmd: test
build-java-check-cmd: check
#build-java-8-cmd: "--version"
#build-java-11-cmd: "--version"
#build-java-check-cmd: "--version"
build-arg-empty: "-Dplaceholder"
spring-gpg-key-id: 9A2C7A98E457C53D
269 changes: 269 additions & 0 deletions ci/pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
resource_types:
- name: slack-notification
type: docker-image
source:
repository: cfcommunity/slack-notification-resource
tag: latest
- name: pull-request
type: docker-image
source:
repository: jtarchie/pr
resources:
- name: git-repo
type: git
source:
uri: ((github-repo))
branch: ((branch))
- name: slack-alert
icon: slack
type: slack-notification
source:
url: ((slack-webhook-url))
- name: git-pull-request
type: pull-request
icon: source-pull
source:
access_token: ((github-ci-pull-request-token))
repo: ((github-repo-name))
base: ((branch))
ignore_paths: ["ci/*"]

jobs:
- name: build-check
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars: &gradle_vars
openjdk-tag: ((openjdk-8-tag))
build-cmd: --version
build-arg1: ((build-arg-empty))
build-arg2: ((build-arg-empty))
build-arg3: ((build-arg-empty))
build-arg4: ((build-arg-empty))
build-arg5: ((build-arg-empty))
build-arg6: ((build-arg-empty))
build-arg7: ((build-arg-empty))
build-arg8: ((build-arg-empty))
timeout: ((task-timeout))
- task: build-jdk-8
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-8-tag)), build-cmd: ((build-java-check-cmd)),
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: &on_failure_tag
do:
- put: slack-alert
params:
text: ":concourse-failed: <https://ci.spring.io/teams/${BUILD_TEAM_NAME}/pipelines/${BUILD_PIPELINE_NAME}/jobs/${BUILD_JOB_NAME}/builds/${BUILD_NAME}|${BUILD_PIPELINE_NAME} ${BUILD_JOB_NAME} failed!>"
silent: true
icon_emoji: ":concourse:"
username: concourse-ci
- name: build-jdk8
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars:
<<: *gradle_vars
timeout: ((task-timeout))
- task: build-jdk-8
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-8-tag)),
build-cmd: ((build-java-8-cmd)),
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: build-snapshot
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars:
<<: *gradle_vars
timeout: ((task-timeout))
- task: build-jdk-8
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-8-tag)),
build-cmd: ((build-java-11-cmd)),
build-arg1: "-PforceMavenRepositories=snapshot",
build-arg2: "-PspringVersion=5.+",
build-arg3: "-PreactorVersion=Dysprosium-BUILD-SNAPSHOT",
build-arg4: "-PspringDataVersion=Lovelace-BUILD-SNAPSHOT",
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: build-jdk9
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars:
<<: *gradle_vars
openjdk-tag: ((openjdk-9-tag))
timeout: ((task-timeout))
- task: build-jdk-9
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-9-tag)),
build-cmd: ((build-java-8-cmd)),
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: build-jdk10
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars:
<<: *gradle_vars
openjdk-tag: ((openjdk-10-tag))
timeout: ((task-timeout))
- task: build-jdk-10
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-10-tag)),
build-cmd: ((build-java-11-cmd)),
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: build-jdk11
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars:
<<: *gradle_vars
openjdk-tag: ((openjdk-11-tag))
timeout: ((task-timeout))
- task: build-jdk-11
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-11-tag)),
build-cmd: ((build-java-11-cmd)),
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: build-jdk12
plan:
- get: git-repo
trigger: true
- task: jdk-version
file: git-repo/ci/tasks/gradle-command.yml
vars:
<<: *gradle_vars
openjdk-tag: ((openjdk-12-tag))
timeout: ((task-timeout))
- task: build-jdk-12
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-12-tag)),
build-cmd: ((build-java-11-cmd)),
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: deploy-artifacts
plan:
- get: git-repo
trigger: true
passed: [build-check, build-jdk8, build-jdk9, build-jdk10, build-jdk11, build-jdk12, build-snapshot]
- task: create-gpg-ring
file: git-repo/ci/tasks/gpg-create-signing-keyring.yml
vars: {
openjdk-tag: ((openjdk-8-tag)),
private-key: ((spring-gpg.private_key)),
public-key: ((spring-gpg.public_key)),
pass-phrase: ((spring-gpg-passphrase)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- task: deploy-artifacts
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-8-tag)),
build-cmd: "deployArtifacts",
build-arg1: "finalizeDeployArtifacts",
build-arg2: -Psigning.secretKeyRingFile=trustedkeys.gpg,
build-arg3: -Psigning.keyId=((spring-gpg-key-id)),
build-arg4: -Psigning.password=((spring-gpg-passphrase)),
build-arg5: -PossrhUsername=((sonatype-username)),
build-arg6: -PossrhPassword=((sonatype-password)),
build-arg7: -PartifactoryUsername=((artifactory-username)),
build-arg8: -PartifactoryPassword=((artifactory-password)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: deploy-docs
plan:
- get: git-repo
trigger: true
passed: [deploy-artifacts]
- task: deploy-artifacts
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-8-tag)),
build-cmd: "clean",
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: deploy-schemas
plan:
- get: git-repo
trigger: true
passed: [deploy-docs]
- task: deploy-artifacts
file: git-repo/ci/tasks/gradle-command.yml
vars: {
openjdk-tag: ((openjdk-8-tag)),
build-cmd: "clean",
build-arg1: ((build-arg-empty)), build-arg2: ((build-arg-empty)), build-arg3: ((build-arg-empty)), build-arg4: ((build-arg-empty)),
build-arg5: ((build-arg-empty)), build-arg6: ((build-arg-empty)), build-arg7: ((build-arg-empty)), build-arg8: ((build-arg-empty)),
}
timeout: ((task-timeout))
on_failure: *on_failure_tag
- name: build-pull-requests
serial: true
public: true
plan:
- get: git-repo
resource: git-pull-request
trigger: true
version: every
- task: build-jdk-8-pr
file: git-repo/ci/tasks/gradle-command.yml
vars: {openjdk-tag: ((openjdk-8-tag))}
timeout: ((task-timeout))
on_failure: *on_failure_tag
groups:
- name: "Build"
jobs: [
"build-check", "build-jdk8", "build-jdk9", "build-jdk10", "build-jdk11", "build-jdk12", "build-snapshot",
"deploy-artifacts", "deploy-docs", "deploy-schemas"
]
- name: "Build Pull Requests"
jobs: ["build-pull-requests"]

14 changes: 14 additions & 0 deletions ci/tasks/build-passed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
platform: linux
image_resource:
type: docker-image
source:
repository: openjdk
tag: ((openjdk-tag))
inputs:
- name: build-((openjdk-tag))-results
run:
path: find
args: [".", "-type", "f", "-name", "'*.jar'"]
dir: build-((openjdk-tag))-results

Loading