-
-
Notifications
You must be signed in to change notification settings - Fork 299
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
Migrate Jenkins build job "cyberduck-release-windows" to GitHub Actions #15555
Draft
RaveenaRamany
wants to merge
86
commits into
iterate-ch:master
Choose a base branch
from
RaveenaRamany:features/migration-cyberduck-release-windows
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+231
−2
Draft
Changes from all commits
Commits
Show all changes
86 commits
Select commit
Hold shift + click to select a range
490a3c2
set distributionManagement repos to local
RaveenaRamany ccabc97
Merge pull request #1 from RaveenaRamany/features/migration-cyberduck…
RaveenaRamany 7c6015a
Add workflow cyberduck-release-windows
RaveenaRamany 8795297
Fix missing transforms
RaveenaRamany 5bdd666
update Repository secrets
RaveenaRamany 70e22c7
Fix secret names
RaveenaRamany b05f3ef
Change runner to github hosted windows runner
RaveenaRamany c7ad044
Fix typo in secret name
RaveenaRamany e9297de
Merge pull request #2 from RaveenaRamany/convert-cyberduck-release-wi…
RaveenaRamany f67f6ef
Add option for git tag
RaveenaRamany 3404b02
Merge pull request #3 from RaveenaRamany/features/migration-cyberduck…
RaveenaRamany 547c0b8
Fix WORKSPACE variable
RaveenaRamany 9f7cd51
Merge pull request #4 from RaveenaRamany/features/migration-cyberduck…
RaveenaRamany 0689757
Fix sparkle updater certificate path
RaveenaRamany 67679c0
Add quotes
RaveenaRamany 60255dc
env test
RaveenaRamany 5cbf6d6
env test
RaveenaRamany 07fed6c
env test
RaveenaRamany 7a6faaa
Fix environment variables
RaveenaRamany 9a129dd
Fix maven-settings-action
RaveenaRamany e175cf7
Fix maven settings.xml
RaveenaRamany 52633d0
Add workflow cyberduck-release-windows-chocolatey
RaveenaRamany b415011
Merge pull request #5 from RaveenaRamany/convert-cyberduck-release-wi…
RaveenaRamany dc9cbb6
comment env-key
RaveenaRamany 4750959
Update cyberduck-release-windows-chocolatey.yml
RaveenaRamany 06ca975
fix Variable GITHUB_REPOSITROY
RaveenaRamany 40c20d8
update runs-on
RaveenaRamany 6132d45
Merge branch 'iterate-ch:master' into master
RaveenaRamany 1e30dc4
Merge pull request #6 from RaveenaRamany/features/migration-cyberduck…
RaveenaRamany 66e1d6a
customize upload
RaveenaRamany fb97d74
change credential values
RaveenaRamany 89ae06d
update aws bucket location
RaveenaRamany 14c4335
update server.xml credentials
RaveenaRamany 19b212f
remove interactivemode setting
RaveenaRamany 0402597
remove interactive mode & add debugging
RaveenaRamany 42aff91
show server.xml
RaveenaRamany a88efc1
test server.xml
RaveenaRamany 0143980
comment out server.xml generation
RaveenaRamany d4cd2c1
comment out servers.xml
RaveenaRamany a965c78
settings.xml test
RaveenaRamany 015c434
fix setup-java overwriting settings.xml
RaveenaRamany 66010a2
change description of setup-java action
RaveenaRamany ef7cfa9
output settings.xml
RaveenaRamany cf60354
change settings.xml path to default
RaveenaRamany d2dec59
remove output of settings.xml
RaveenaRamany 4133db3
change settings.xml path to github.workspace
RaveenaRamany c04c677
output content of settings.xml
RaveenaRamany 5117f28
remove output of settings.xml
RaveenaRamany 281b117
delete debug modus
RaveenaRamany 9a33b95
remove space
RaveenaRamany 97b2974
maven enable debugging
RaveenaRamany 8c9d9d9
enable fetching all history
RaveenaRamany 54e8022
Add MSBuild.exe to PATH
RaveenaRamany 4d8e6c9
Install build requirement Bonjour Print Services
RaveenaRamany dc9ac7c
Move build requirements installation before build execution
RaveenaRamany bf31d55
Skip package signing
RaveenaRamany 0b49d4f
Skip package signing
RaveenaRamany 05f7642
Install cygwin to provide sh and openssl
RaveenaRamany 9529548
Only build cyberduck for windows
RaveenaRamany fcf4033
Only build Cyberduck.Native
RaveenaRamany e64eb1f
Build all projects
RaveenaRamany 92ff5b4
choco yes to all
RaveenaRamany f0a745c
install openssl
RaveenaRamany f30c2ae
Only build core/native
RaveenaRamany d1cd6e0
only build windows module
RaveenaRamany 9ab78ab
add install Cmake
RaveenaRamany fb755bd
Add cmake to PATH
RaveenaRamany 3a53a0f
add cpack using chocolatey
RaveenaRamany b9ec705
Remove unnecessary CPack (CMake) build requirment and make yaml more …
RaveenaRamany 5b1089a
Build all modules
RaveenaRamany 9109341
output env Path
RaveenaRamany b67150b
Refresh env for troubleshooting unknown command duck
RaveenaRamany 9ad1c06
Skip building for AWS upload troubleshooting
RaveenaRamany 8eb3621
Display duck install path
RaveenaRamany cd03e5e
Remove bonjour & openssl install for testing behaviour of windows pat…
RaveenaRamany 1fe7fee
Add duck cli to GitHub runner persistent path
RaveenaRamany 9d0b815
Switch powershell version to 6+
RaveenaRamany 5928617
Refactor adding variable to persistent GitHub PATH
RaveenaRamany bf459a0
Switch to powershell core version 6+
RaveenaRamany 7a4e22b
Import revreshenv helper
RaveenaRamany f93dbf3
output GitHub env
RaveenaRamany 2218f53
Show directories under GITHUB_WORKSPACE
RaveenaRamany f6091a1
Output GITHUB_PATH
RaveenaRamany ccdab04
Only test duck install
RaveenaRamany daf2993
Writeback current PATH containing cyberduck
RaveenaRamany ec9f070
Writeback current PATH after installing packages
RaveenaRamany File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
19 changes: 19 additions & 0 deletions
19
.github/workflows/cyberduck-release-windows-chocolatey.yml
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
name: cyberduck-release-windows-chocolatey | ||
on: | ||
workflow_dispatch: | ||
env: | ||
CHOCOLATEY_API: "${{ secrets.CHOCOLATEY_API_KEY }}" | ||
# # TimestamperBuildWrapper was not converted because the behavior is available by default in GitHub Actions and/or it is not configurable | ||
jobs: | ||
build: | ||
runs-on: | ||
- windows-latest | ||
steps: | ||
- name: checkout | ||
uses: actions/[email protected] | ||
- name: run batch command | ||
shell: cmd | ||
run: FOR %%c in ("%GITHUB_REPOSITORY%\..\cyberduck-release-windows\windows\target\release\cyberduck.*.nupkg") DO C:\ProgramData\chocolatey\bin\cpush --verbose --api-key %CHOCOLATEY_API% %%c | ||
# # Mailer plugin was not converted because GitHub Actions will email the actor after failed build and does not support emailing a list of recipients | ||
|
||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,208 @@ | ||
name: cyberduck-release-windows | ||
on: | ||
workflow_dispatch: | ||
inputs: | ||
GIT_TAG: | ||
required: false | ||
|
||
env: | ||
AWS_ACCESS_KEY_DEPLOYMENT: "${{ secrets.AWS_ACCESS_KEY_DEPLOYMENT }}" | ||
AWS_SECRET_KEY_DEPLOYMENT: "${{ secrets.AWS_SECRET_KEY_DEPLOYMENT }}" | ||
AWS_CUSTOM_IP5_ACCESS_KEY_DEPLOYMENT: "${{ secrets.AWS_CUSTOM_IP5_ACCESS_KEY_DEPLOYMENT }}" | ||
AWS_CUSTOM_IP5_SECRET_KEY_DEPLOYMENT: "${{ secrets.AWS_CUSTOM_IP5_SECRET_KEY_DEPLOYMENT }}" | ||
RACKSPACE_USER: "${{ secrets.RACKSPACE_USER }}" | ||
RACKSPACE_PASSWORD: "${{ secrets.RACKSPACE_PASSWORD }}" | ||
|
||
jobs: | ||
build: | ||
runs-on: | ||
- windows-latest | ||
steps: | ||
- name: clean workspace | ||
shell: ruby {0} | ||
run: |- | ||
require "fileutils" | ||
Dir.chdir(ENV["GITHUB_WORKSPACE"]) do | ||
paths = Dir.glob(["**/*"]) | ||
paths -= Dir.glob([".git/**", ".repository/**"]) | ||
paths.each do |path| | ||
File.delete(path) if File.file?(path) | ||
FileUtils.rm_rf(path) if File.directory?(path) | ||
end | ||
end | ||
|
||
- name: checkout | ||
uses: actions/[email protected] | ||
with: | ||
fetch-depth: '0' | ||
ref: ${{ inputs.GIT_TAG }} | ||
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. Don't think this input is required when the user selects a tag for the run from Run workflow. |
||
|
||
- name: Copy Sparkle Updater Private Key (DSA) | ||
shell: pwsh | ||
env: | ||
SPARKLE_UPDATER_PK: ${{ secrets.WIN_SPARKLE_UPDATER_PRIVATE_KEY }} | ||
run: ${env:SPARKLE_UPDATER_PK} > "${env:GITHUB_WORKSPACE}\www\update\private.pem" | ||
|
||
- name: Generate maven settings.xml | ||
uses: s4u/[email protected] | ||
with: | ||
path: "${{ github.workspace }}/settings.xml" | ||
servers: | | ||
[{ | ||
"id": "custom-ip5-maven.cyberduck.io-release", | ||
"username": "${{ secrets.AWS_CUSTOM_IP5_ACCESS_KEY_DEPLOYMENT }}", | ||
"password": "${{ secrets.AWS_CUSTOM_IP5_SECRET_KEY_DEPLOYMENT }}" | ||
}, | ||
{ | ||
"id": "custom-ip5-maven.cyberduck.io-snapshot", | ||
"username": "${{ secrets.AWS_CUSTOM_IP5_ACCESS_KEY_DEPLOYMENT }}", | ||
"password": "${{ secrets.AWS_CUSTOM_IP5_SECRET_KEY_DEPLOYMENT }}" | ||
}, | ||
{ | ||
"id": "maven.iterate.ch-release", | ||
"username": "${{ secrets.AWS_ACCESS_KEY_DEPLOYMENT }}", | ||
"password": "${{ secrets.AWS_SECRET_KEY_DEPLOYMENT }}" | ||
}, | ||
{ | ||
"id": "maven.iterate.ch-snapshot", | ||
"username": "${{ secrets.AWS_ACCESS_KEY_DEPLOYMENT }}", | ||
"password": "${{ secrets.AWS_SECRET_KEY_DEPLOYMENT }}" | ||
}, | ||
{ | ||
"id": "maven.cyberduck.io-release", | ||
"username": "${{ secrets.AWS_ACCESS_KEY_DEPLOYMENT }}", | ||
"password": "${{ secrets.AWS_SECRET_KEY_DEPLOYMENT }}" | ||
}, | ||
{ | ||
"id": "maven.cyberduck.io-snapshot", | ||
"username": "${{ secrets.AWS_ACCESS_KEY_DEPLOYMENT }}", | ||
"password": "${{ secrets.AWS_SECRET_KEY_DEPLOYMENT }}" | ||
}] | ||
|
||
- name: Set up JDK 17 and skip overwriting of settings.xml | ||
uses: actions/[email protected] | ||
with: | ||
distribution: 'temurin' | ||
java-version: '17' | ||
settings-path: "${{ github.workspace }}" | ||
overwrite-settings: false | ||
|
||
- name: Install upload requirement Cyberduck CLI using chocolatey | ||
shell: pwsh | ||
run: Import-Module "${env:ChocolateyInstall}\helpers\chocolateyProfile.psm1" && choco install duck -y && refreshenv && "${env:Path}" | Out-File -FilePath ${env:GITHUB_PATH} -Append | ||
# run: Import-Module "${env:ChocolateyInstall}\helpers\chocolateyProfile.psm1" && choco install duck -y && refreshenv && Get-Command duck | Split-Path -Parent | Out-File -FilePath ${env:GITHUB_PATH} -Append | ||
|
||
- name: Install build requirement Bonjour Print Services for Windows (https://community.chocolatey.org/packages/bonjour) | ||
shell: pwsh | ||
run: Import-Module "${env:ChocolateyInstall}\helpers\chocolateyProfile.psm1" && choco install bonjour -y && refreshenv && "${env:Path}" | Out-File -FilePath ${env:GITHUB_PATH} -Append | ||
|
||
- name: Install build requirement openssl using chocolatey | ||
shell: pwsh | ||
run: Import-Module "${env:ChocolateyInstall}\helpers\chocolateyProfile.psm1" && choco install openssl -y && refreshenv && "${env:Path}" | Out-File -FilePath ${env:GITHUB_PATH} -Append | ||
|
||
- name: Add MSBuild.exe to PATH | ||
uses: microsoft/[email protected] | ||
|
||
- name: Run maven | ||
# Todo: Remove "-e" and "-DskipSign=true" Options for production | ||
run: mvn clean deploy -DskipSign=true -e --settings ${env:GITHUB_WORKSPACE}/settings.xml -DskipTests -D"sparkle.feed=" | ||
|
||
- name: Upload files to Rackspace | ||
shell: pwsh | ||
run: echo "Dummy rackspace upload" | ||
# run: Get-ChildItem "${Env:GITHUB_WORKSPACE}\windows\target\release\" -Filter Cyberduck-* | Foreach-Object -process { duck --upload rackspace:/cdn.cyberduck.ch/ $_.FullName --username ${Env:RACKSPACE_USER} --password ${Env:RACKSPACE_PASSWORD} --retry --quiet --existing overwrite --region DFW } | ||
# run: FOR %%c in ("%GITHUB_WORKSPACE%\windows\target\release\Cyberduck-*") DO "C:\Program Files\Cyberduck CLI\duck.exe" --upload rackspace:/cdn.cyberduck.ch/ "%%c" --username %RACKSPACE_USER% --password %RACKSPACE_PASSWORD% --retry --quiet --existing overwrite --region DFW | ||
|
||
- name: Upload files to AWS S3 Bucket | ||
shell: pwsh | ||
# Todo: Remove echos | ||
run: dir "${Env:GITHUB_WORKSPACE}"; echo ${Env:GITHUB_WORKSPACE}\windows\target\release\; Get-ChildItem "${Env:GITHUB_WORKSPACE}\windows\target\release\" -Filter Cyberduck-* | Foreach-Object -process { duck --upload s3:/ip5-cicd-cyberduck/ $_.FullName --username ${Env:AWS_CUSTOM_IP5_ACCESS_KEY_DEPLOYMENT} --password ${Env:AWS_CUSTOM_IP5_SECRET_KEY_DEPLOYMENT} --retry --quiet --existing overwrite --region eu-west-1} | ||
# run: Get-ChildItem "${Env:GITHUB_WORKSPACE}\windows\target\release\" -Filter Cyberduck-* | Foreach-Object -process { duck --upload s3:/release.cyberduck.io/ $_.FullName --username ${Env:AWS_ACCESS_KEY_DEPLOYMENT} --password ${Env:AWS_SECRET_KEY_DEPLOYMENT} --retry --quiet --existing overwrite --region us-east-1 } | ||
# run: FOR %%c in ("%GITHUB_WORKSPACE%\windows\target\release\Cyberduck-*") DO "C:\Program Files\Cyberduck CLI\duck.exe" --upload s3:/release.cyberduck.io/ "%%c" --username %AWS_ACCESS_KEY_DEPLOYMENT% --password %AWS_SECRET_KEY_DEPLOYMENT% --retry --quiet --existing overwrite --region us-east-1 | ||
|
||
- name: Upload Artifacts | ||
uses: actions/[email protected] | ||
if: always() | ||
with: | ||
path: |- | ||
windows\target\release\*.exe | ||
windows\target\release\*.msi | ||
windows\target\release\*.appx | ||
!**/*~ | ||
!**/#*# | ||
!**/.#* | ||
!**/%*% | ||
!**/._* | ||
!**/CVS | ||
!**/CVS/** | ||
!**/.cvsignore | ||
!**/SCCS | ||
!**/SCCS/** | ||
!**/vssver.scc | ||
!**/.svn | ||
!**/.svn/** | ||
!**/.DS_Store | ||
!**/.git | ||
!**/.git/** | ||
!**/.gitattributes | ||
!**/.gitignore | ||
!**/.gitmodules | ||
!**/.hg | ||
!**/.hg/** | ||
!**/.hgignore | ||
!**/.hgsub | ||
!**/.hgsubstate | ||
!**/.hgtags | ||
!**/.bzr | ||
!**/.bzr/** | ||
!**/.bzrignore | ||
Comment on lines
+131
to
+158
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. Not required. |
||
|
||
# # Fingerprinter was not converted because the behavior is available by default in GitHub Actions and/or it is not configurable | ||
# # Mailer plugin was not converted because GitHub Actions will email the actor after failed build and does not support emailing a list of recipients | ||
# Ensure parameter if_key_exists is set correctly | ||
- name: Install SSH key | ||
uses: shimataro/[email protected] | ||
with: | ||
key: "${{ secrets.VERSION_CYBERDUCK_IO_SSH_KEY }}" | ||
name: id_rsa-version_cyberduck_io | ||
known_hosts: "${{ secrets.VERSION_CYBERDUCK_IO_KNOWN_HOSTS }}" | ||
if_key_exists: replace # replace will allow us to update the ssh-key on an existing build | ||
config: | | ||
Host VERSION_CYBERDUCK_IO | ||
HostName ${{ secrets.VERSION_CYBERDUCK_IO_HOST_NAME }} | ||
User ${{ secrets.VERSION_CYBERDUCK_IO_USER }} | ||
IdentityFile ~/.ssh/id_rsa-version_cyberduck_io | ||
if: always() | ||
|
||
- name: setup file transfer file | ||
uses: actions/[email protected] | ||
with: | ||
script: |- | ||
const fs = require('fs').promises | ||
const path = require('path') | ||
const patterns = "windows/target/update/changelog.*,!**/*~,!**/#*#,!**/.#*,!**/%*%,!**/._*,!**/CVS,!**/CVS/**,!**/.cvsignore,!**/SCCS,!**/SCCS/**,!**/vssver.scc,!**/.svn,!**/.svn/**,!**/.DS_Store,!**/.git,!**/.git/**,!**/.gitattributes,!**/.gitignore,!**/.gitmodules,!**/.hg,!**/.hg/**,!**/.hgignore,!**/.hgsub,!**/.hgsubstate,!**/.hgtags,!**/.bzr,!**/.bzr/**,!**/.bzrignore" | ||
const globber = await glob.create(patterns.replace(/,/g, "\n")) | ||
const files = [] | ||
for await (const file of globber.globGenerator()) { | ||
if ((await fs.lstat(file)).isDirectory()) continue | ||
files.push(path.relative(process.cwd(), file)) | ||
} | ||
fs.writeFile("version_cyberduck_io-transfer.txt", files.join("\n"), (err) => {}) | ||
if: always() | ||
|
||
- name: run file transfers | ||
run: |- | ||
ssh VERSION_CYBERDUCK_IO 'mkdir -p windows' | ||
tar -cvf version_cyberduck_io-transfer.tar --files-from version_cyberduck_io-transfer.txt | ||
scp version_cyberduck_io-transfer.tar VERSION_CYBERDUCK_IO: | ||
ssh VERSION_CYBERDUCK_IO 'tar -xvf version_cyberduck_io-transfer.tar -C windows && rm version_cyberduck_io-transfer.tar' | ||
if: always() | ||
# # This item has no matching transformer | ||
# - uses: hudson.tasks.BuildTrigger | ||
# with: | ||
# childProjects: cyberduck-release-windows-chocolatey | ||
# threshold: | ||
# name: SUCCESS | ||
# ordinal: '0' | ||
# color: BLUE | ||
# completeBuild: 'true' |
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
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
Cleanup of workspace is not required in GitHub Actions context.