-
Notifications
You must be signed in to change notification settings - Fork 4
151 lines (134 loc) · 5.17 KB
/
on-main-push.yml
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
151
name: main branch deploy and site publishing
on:
workflow_dispatch:
push:
branches: [ main ]
paths-ignore:
- '**.md'
- '.idea/**'
- '.*'
- '/*/.*'
jobs:
# TODO pull into separate workflow file and reuse
# same as in on-pull-request.yml
# see https://docs.github.com/en/actions/using-workflows/reusing-workflows
# and https://docs.github.com/en/actions/creating-actions/creating-a-composite-action
matrix-build:
name: ${{ matrix.os }} jdk-${{ matrix.java-version }} build w/o tests
runs-on: ${{ matrix.os }}
strategy:
matrix:
java-version: [ 17, 11, 8 ]
os: [ ubuntu-latest, macos-latest, windows-latest ]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: 'temurin'
cache: maven
settings-path: ${{ github.workspace }}
- name: unix mvn install
if: ${{ !contains(matrix.os, 'windows') }}
run: |
chmod +x mvnw && ./mvnw install \
-s $GITHUB_WORKSPACE/settings.xml \
-Pmode-build-fast,mode-build-quiet
- name: windows mvn install
if: ${{ contains(matrix.os, 'windows') }}
shell: cmd
run: |
mvnw install ^
-s %GITHUB_WORKSPACE%\settings.xml ^
-Pmode-build-fast,mode-build-quiet
deploy-for-jdk8:
name: jdk-8 snapshot publish
# ISSUE ChromeDriver/GeckoDriver fail to initialize on Ubuntu
# see https://github.com/QA-Automation-Starter/qa-automation/actions/runs/3294884059/jobs/5432863668
# see https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
# and https://github.com/actions/runner-images/blob/main/images/win/Windows2022-Readme.md
# ISSUE Google Search behaves differently on MacOS causing tests to fail
runs-on: windows-latest
environment: development
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v3
with:
java-version: '8'
distribution: 'temurin'
cache: maven
settings-path: ${{ github.workspace }}
server-id: ossrh # Value of the distributionManagement/repository/id field of the pom.xml
server-username: OSSRH_USERNAME
server-password: OSSRH_PASSWORD
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
- name: Setup SSH
uses: webfactory/ssh-agent@v0.6.0
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
- name: Maven deploy snapshots and publish site
shell: cmd
run: |
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem /f /v LongPathsEnabled /t REG_DWORD /d 0x1
git config --global core.longpaths true
git config --global user.name "Adrian Herscu"
git config --global user.email "adrian.herscu@gmail.com"
mvnw deploy site site:stage scm-publish:publish-scm ^
-s %GITHUB_WORKSPACE%\settings.xml ^
-Pmode-build-quiet,provider-saucelabs-selenium,testing-tutorials
env:
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SAUCELABS_USER: ${{ secrets.SAUCELABS_USER }}
SAUCELABS_PASSWORD: ${{ secrets.SAUCELABS_PASSWORD }}
# TODO pull into separate workflow file and reuse
# same as in on-pull-request.yml
generate-automation-project:
name: Generates new automation project and builds it
needs: deploy-for-jdk8
runs-on: ubuntu-latest
steps:
- name: setup maven for sonatype snapshots
uses: whelk-io/maven-settings-xml-action@v20
with:
repositories: >
[
{
"id": "ossrh",
"url": "https://s01.oss.sonatype.org/content/repositories/snapshots",
"snapshots": {
"enabled": "true",
"checksumPolicy": "warn"
}
}
]
# FIXME should run with controlled java version
- name: bootstrap maven
uses: aahmed-se/setup-maven@v3
with:
maven-version: 3.6.1
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
- name: setup maven cache
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: generate testing project
# ISSUE https://stackoverflow.com/questions/74581510/using-latest-for-archetypeversion-always-resolves-to-latest-release
# NOTE will use last released archetype
run: |
mvn --batch-mode archetype:generate \
-DarchetypeGroupId=dev.aherscu.qa \
-DarchetypeArtifactId=qa-testing-archetype \
-DgroupId=com.acme \
-DartifactId=testing \
-Dversion=1.0-SNAPSHOT \
-Dpackage=com.acme.testing
- name: build testing project
run: |
cd testing && chmod +x mvnw && ./mvnw