Parameter movement. #465
Workflow file for this run
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
# The primary workflow that handles building, testing, and deploying. | |
name: Main | |
on: | |
push: | |
branches: | |
- '*' | |
tags: | |
- '[0-9]+.[0-9]+.[0-9]+' | |
- 'CANARY-[0-9]+.[0-9]+.[0-9]+' | |
pull_request: | |
branches: | |
- '*' | |
jobs: | |
build-test: | |
runs-on: ubuntu-22.04 | |
services: | |
postgres: | |
image: postgres:14.6 | |
env: | |
POSTGRES_USER: runner # Github runner default. | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: psltest | |
POSTGRES_HOST_AUTH_METHOD: trust | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
ports: | |
- 5432:5432 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Needs to be deep enough to hit the last tagged version. | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 8 | |
distribution: adopt | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.7' | |
- name: Cache Maven | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
- name: Cache Python Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('psl-python/setup.py') }}-${{ hashFiles('psl-python/dev_requirements.txt') }}-${{ hashFiles('psl-python/optional_requirements.txt') }} | |
- name: Python Dependencies | |
run: | | |
pip3 install -r psl-python/dev_requirements.txt | |
pip3 install -r psl-python/optional_requirements.txt | |
- name: Build with Maven | |
run: mvn integration-test -B -P all-modules | |
- name: Archive Build | |
run: tar cvf psl.tar */target | |
- name: Upload Archived Build | |
uses: actions/upload-artifact@v3 | |
with: | |
name: psl | |
path: psl.tar | |
style-lint: | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Needs to be deep enough to hit the last tagged version. | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 8 | |
distribution: adopt | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.7' | |
- name: Cache Maven | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
- name: Cache Python Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('psl-python/setup.py') }}-${{ hashFiles('psl-python/dev_requirements.txt') }}-${{ hashFiles('psl-python/optional_requirements.txt') }} | |
- name: Python Dependencies | |
run: | | |
pip3 install -r psl-python/dev_requirements.txt | |
pip3 install -r psl-python/optional_requirements.txt | |
- name: Style and Lint | |
run: ./.ci/style-and-lint.sh | |
deploy: | |
needs: [build-test, style-lint] | |
runs-on: ubuntu-22.04 | |
if: ${{ github.event_name == 'push' && github.repository_owner == 'linqs' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Needs to be deep enough to hit the last tagged version. | |
- name: Set up JDK 8 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 8 | |
distribution: adopt | |
- name: Set up Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.7' | |
- name: Cache Maven | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} | |
- name: Cache Python Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('psl-python/setup.py') }}-${{ hashFiles('psl-python/dev_requirements.txt') }}-${{ hashFiles('psl-python/optional_requirements.txt') }} | |
- name: Python Dependencies | |
run: | | |
pip3 install -r psl-python/dev_requirements.txt | |
pip3 install -r psl-python/optional_requirements.txt | |
- name: Download Archived Build | |
uses: actions/download-artifact@v3 | |
with: | |
name: psl | |
path: ${{ github.workspace }} | |
- name: Unpack Archived Build | |
run: tar xvf psl.tar | |
- name: Import GPG Key | |
uses: crazy-max/ghaction-import-gpg@v5 | |
with: | |
gpg_private_key: ${{ secrets.GPG_DEPLOY_PRIVATE_KEY }} | |
passphrase: ${{ secrets.GPG_DEPLOY_PASSWORD }} | |
- name: Deploy Test Artifacts | |
if: ${{ github.ref == 'refs/heads/main' }} | |
env: | |
OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME }} | |
OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }} | |
GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} | |
TWINE_USERNAME: '__token__' | |
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PSLPYTHON }} | |
run: ./.ci/deploy-test-artifacts.sh | |
- name: Deploy Production Artifacts | |
if: ${{ startsWith(github.ref, 'refs/tags/') }} | |
env: | |
OSSRH_JIRA_USERNAME: ${{ secrets.OSSRH_JIRA_USERNAME }} | |
OSSRH_JIRA_PASSWORD: ${{ secrets.OSSRH_JIRA_PASSWORD }} | |
GPG_KEY_NAME: ${{ secrets.GPG_KEY_NAME }} | |
TWINE_USERNAME: '__token__' | |
TWINE_PASSWORD: ${{ secrets.PYPI_PSLPYTHON }} | |
run: ./.ci/deploy-prod-artifacts.sh | |
version-matrix: | |
needs: [build-test, style-lint] | |
runs-on: ubuntu-22.04 | |
strategy: | |
matrix: | |
java-version: [8, 11, 16, 17] | |
python-version: ['3.7', '3.8', '3.9'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 # Needs to be deep enough to hit the last tagged version. | |
- name: Set up JDK ${{ matrix.java-version }} | |
uses: actions/setup-java@v3 | |
with: | |
java-version: ${{ matrix.java-version }} | |
distribution: adopt | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Cache Maven | |
uses: actions/cache@v3 | |
with: | |
path: ~/.m2/repository | |
key: ${{ runner.os }}-maven-java${{ matrix.java-version }}-${{ hashFiles('**/pom.xml') }} | |
- name: Cache Python Dependencies | |
uses: actions/cache@v3 | |
with: | |
path: ${{ env.pythonLocation }} | |
key: ${{ runner.os }}-${{ env.pythonLocation }}-${{ hashFiles('psl-python/setup.py') }}-${{ hashFiles('psl-python/dev_requirements.txt') }}-${{ hashFiles('psl-python/optional_requirements.txt') }} | |
- name: Python Dependencies | |
run: | | |
pip3 install -r psl-python/dev_requirements.txt | |
pip3 install -r psl-python/optional_requirements.txt | |
- name: Build with Maven | |
run: mvn integration-test -B -P all-modules |