-
Notifications
You must be signed in to change notification settings - Fork 0
150 lines (149 loc) · 5.23 KB
/
ruby.yaml
File metadata and controls
150 lines (149 loc) · 5.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# The following workflow provides an opinionated template you can customize for your own needs.
#
# If you are not an Octopus user, the "Push to Octopus", "Generate Octopus Deploy build information",
# and "Create Octopus Release" steps can be safely deleted.
#
# To configure Octopus, set the OCTOPUS_API_TOKEN secret to the Octopus API key, and
# set the OCTOPUS_SERVER_URL secret to the Octopus URL.
#
# Double check the "project" and "deploy_to" properties in the "Create Octopus Release" step
# match your Octopus projects and environments.
#
# Get a trial Octopus instance from https://octopus.com/start
name: Ruby Build
'on':
workflow_dispatch: {}
push: {}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: '0'
- name: Set up Ruby
uses: actions/setup-ruby@v1
with:
ruby-version: '2.7'
- name: Install Bundler
run: gem install bundler
- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0.9.14
with:
versionSpec: 5.x
- id: determine_version
name: Determine Version
uses: gittools/actions/gitversion/execute@v0.9.14
with:
additionalArguments: /overrideconfig mode=Mainline
- name: Install Octopus Deploy CLI
uses: OctopusDeploy/install-octopus-cli-action@v1
with:
version: latest
- name: Install Dependencies
run: bundle install
shell: bash
- name: List Dependencies
run: gem dep > dependencies.txt
shell: bash
- name: Collect Dependencies
uses: actions/upload-artifact@v2
with:
name: Dependencies
path: dependencies.txt
- name: List Dependency Updates
run: gem outdated > dependencyUpdates.txt
shell: bash
- name: Collect Dependency Updates
uses: actions/upload-artifact@v2
with:
name: Dependencies Updates
path: dependencyUpdates.txt
- name: Test
run: gem install rspec_junit_formatter; rspec --format RspecJunitFormatter --out results.xml
shell: bash
- if: always()
name: Report
uses: dorny/test-reporter@v1
with:
name: Ruby Tests
path: results.xml
reporter: java-junit
fail-on-error: 'false'
- name: Package
run: |-
SOURCEPATH=.
OUTPUTPATH=.
octo pack \
--basePath ${SOURCEPATH} \
--outFolder ${OUTPUTPATH} \
--id RandomQuotes-Ruby \
--version ${{ steps.determine_version.outputs.semVer }} \
--format zip \
--overwrite \
--include '**/*.rb' \
--include '**/*.html' \
--include '**/*.htm' \
--include '**/*.css' \
--include '**/*.js' \
--include '**/*.min' \
--include '**/*.map' \
--include '**/*.sql' \
--include '**/*.png' \
--include '**/*.jpg' \
--include '**/*.jpeg' \
--include '**/*.gif' \
--include '**/*.json' \
--include '**/*.env' \
--include '**/*.txt' \
--include '**/*.Procfile'
shell: bash
- name: Tag Release
uses: mathieudutour/github-tag-action@v6.0
with:
custom_tag: ${{ steps.determine_version.outputs.semVer }}
github_token: ${{ secrets.GITHUB_TOKEN }}
- id: create_release
name: Create Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ steps.determine_version.outputs.semVer }}+run${{ github.run_number }}-attempt${{ github.run_attempt }}
release_name: Release ${{ steps.determine_version.outputs.semVer }} Run ${{ github.run_number }} Attempt ${{ github.run_attempt }}
draft: 'false'
prerelease: 'false'
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: RandomQuotes-Ruby.${{ steps.determine_version.outputs.semVer }}.zip
asset_name: RandomQuotes-Ruby.${{ steps.determine_version.outputs.semVer }}.zip
asset_content_type: application/octet-stream
- name: Push packages to Octopus Deploy
uses: OctopusDeploy/push-package-action@v2
env:
OCTOPUS_API_KEY: ${{ secrets.OCTOPUS_API_TOKEN }}
OCTOPUS_HOST: ${{ secrets.OCTOPUS_SERVER_URL }}
with:
packages: RandomQuotes-Ruby.${{ steps.determine_version.outputs.semVer }}.zip
overwrite_mode: OverwriteExisting
- name: Generate Octopus Deploy build information
uses: OctopusDeploy/push-build-information-action@v1
env:
OCTOPUS_API_KEY: ${{ secrets.OCTOPUS_API_TOKEN }}
OCTOPUS_HOST: ${{ secrets.OCTOPUS_SERVER_URL }}
with:
version: ${{ steps.determine_version.outputs.semVer }}
packages: RandomQuotes-Ruby
overwrite_mode: OverwriteExisting
- name: Create Octopus Release
uses: OctopusDeploy/create-release-action@v1
with:
api_key: ${{ secrets.OCTOPUS_API_TOKEN }}
project: RandomQuotes-Ruby
server: ${{ secrets.OCTOPUS_SERVER_URL }}
deploy_to: Development
packages: RandomQuotes-Ruby:${{ steps.determine_version.outputs.semVer }}