DEV manual deploy from dev branch #13
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
name: DEV manual deploy from dev branch | |
on: | |
workflow_dispatch: | |
inputs: | |
schema-version: | |
required: true | |
description: Schema version | |
type: choice | |
options: | |
- v1 | |
- v2 | |
directory-name: | |
type: string | |
required: true | |
description: Name of the directory you would like to deploy to DEV | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION }} | |
jobs: | |
check_permission: | |
runs-on: ubuntu-latest | |
#if: github.event.ref == 'refs/heads/dev' | |
steps: | |
- name: Get Permission | |
uses: octokit/[email protected] | |
id: get_permission | |
with: | |
route: GET /repos/${{ github.repository }}/collaborators/${{ github.actor }}/permission | |
env: | |
GITHUB_TOKEN: ${{ secrets.PERSONAL_ACCESS_TOKEN }} | |
- name: output | |
run: | | |
export role_name=${{ fromJson(steps.get_permission.outputs.data).role_name }} | |
if [[ "$role_name" == "maintain" || "$role_name" == "admin" ]]; then | |
exit 0 | |
else | |
exit 1 | |
fi | |
check_validation: | |
runs-on: ubuntu-latest | |
#if: github.event.ref == 'refs/heads/dev' | |
needs: check_permission | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.ref }} | |
- name: Set up Python environment | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.8" | |
- name: Checkout validation suite | |
uses: actions/checkout@v2 | |
with: | |
repository: ror-community/validation-suite | |
path: validation-suite | |
- name: Validate files | |
id: validatefiles | |
run: | | |
mkdir files | |
cp ./${{ github.event.inputs.directory-name }}/*.json files/ | |
cd validation-suite | |
python -m pip install --upgrade pip | |
pip install -r requirements.txt | |
if [[ ${{ github.event.inputs.schema-version }} == 'v2' ]]; then | |
curl https://raw.githubusercontent.com/ror-community/ror-schema/schema-v2/ror_schema.json -o ror_schema.json | |
if [[ -f "../${{github.event.pull_request.head.ref}}/relationships.csv" ]]; then | |
python run_validations.py -i ../files -v 1 -s ror_schema.json -f ../${{github.event.pull_request.head.ref}}/relationships.csv -p ../files/ --no-geonames | |
else | |
python run_validations.py -i ../files -v 1 -s ror_schema.json --no-geonames | |
fi | |
fi | |
if [[ ${{ github.event.inputs.schema-version }} == 'v2' ]]; then | |
curl https://raw.githubusercontent.com/ror-community/ror-schema/schema-v2/ror_schema_v2_0.json -o ror_schema_v2_0.json | |
if [[ -f "../${{github.event.pull_request.head.ref}}/relationships.csv" ]]; then | |
python run_validations.py -i ../files -v 2 -s ror_schema_v2_0.json -f ../${{github.event.pull_request.head.ref}}/relationships.csv -p ../files/ --no-geonames | |
else | |
python run_validations.py -i ../files -v 2 -s ror_schema_v2_0.json --no-geonames | |
fi | |
fi | |
- name: Notify Slack | |
if: always() | |
uses: edge/simple-slack-notify@master | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.CURATOR_SLACK_WEBHOOK_URL }} | |
with: | |
channel: '#ror-curation-releases' | |
color: 'good' | |
text: 'Validation status during DEV manual index: ${{ steps.validatefiles.outcome }}. In directory: ${{ github.event.inputs.directory-name }}. Please check: ${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}' | |
copy-files: | |
runs-on: ubuntu-latest | |
if: github.event.ref == 'refs/heads/dev' | |
needs: check_validation | |
steps: | |
- name: checkout | |
uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.ref }} | |
- name: Install aws cli | |
id: install-aws-cli | |
uses: unfor19/[email protected] | |
- name: Zip and copy files | |
id: copyfiles | |
run: | | |
cd ./${{ github.event.inputs.directory-name }} | |
zip files.zip *.json | |
aws s3 cp files.zip s3://${{ secrets.ROR_DATA_S3_BUCKET_DEV }}/${{ github.event.inputs.directory-name }}-${{ github.event.inputs.schema-version }}/files.zip | |
aws s3 ls s3://${{ secrets.ROR_DATA_S3_BUCKET_DEV }}/${{ github.event.inputs.directory-name }}/files.zip | |
- name: Notify Slack | |
if: always() | |
uses: edge/simple-slack-notify@master | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.CURATOR_SLACK_WEBHOOK_URL }} | |
with: | |
channel: '#ror-curation-releases' | |
color: 'good' | |
text: 'Copy status to DEV S3 Bucket: ${{ steps.copyfiles.outcome }}. From directory: ${{ github.event.inputs.directory-name }}. Please check: ${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}' | |
- name: Index file | |
id: indexdata | |
run: | | |
cd .github/workflows | |
python -m pip install --upgrade pip | |
pip install requests==2.23.0 | |
if [[ ${{ github.event.inputs.schema-version }} == 'v1' ]]; then | |
python index_files.py -u ${{ secrets.INDEX_DEV_API_URL_V1 }} -d ${{ github.event.inputs.directory-name }}-v1 -he ${{ secrets.INDEX_DEV_API_HEADERS }} | |
fi | |
if [[ ${{ github.event.inputs.schema-version }} == 'v2' ]]; then | |
python index_files.py -u ${{ secrets.INDEX_DEV_API_URL_V2 }} -d ${{ github.event.inputs.directory-name }}-v2 -he ${{ secrets.INDEX_DEV_API_HEADERS }} | |
fi | |
- name: Notify Slack | |
if: always() | |
uses: edge/simple-slack-notify@master | |
env: | |
SLACK_WEBHOOK_URL: ${{ secrets.CURATOR_SLACK_WEBHOOK_URL }} | |
with: | |
channel: '#ror-curation-releases' | |
color: 'good' | |
text: 'DEV index status: ${{ steps.indexdata.outcome }}. Using version ${{ github.event.inputs.schema-version }}. From directory: ${{ github.event.inputs.directory-name }}-${{ github.event.inputs.schema-version }}. Please check: ${env.GITHUB_SERVER_URL}/${env.GITHUB_REPOSITORY}/actions/runs/${env.GITHUB_RUN_ID}' | |