Skip to content

chore: fix ci when a pr is submitted from a fork #215

chore: fix ci when a pr is submitted from a fork

chore: fix ci when a pr is submitted from a fork #215

on:
push:
branches:
- master
- staging
- release
pull_request:
repository_dispatch:
types: build-and-deploy
workflow_dispatch:
workflow_call:
concurrency:
group: cli-${{ github.workflow }}-${{ github.ref_type }}-${{ github.event.pull_request.number || github.ref || github.run_id }}
cancel-in-progress: true
defaults:
run:
shell: bash -euxo pipefail {0}
env:
VERBOSE: 1
jobs:
build-and-deploy-datasets:
runs-on: ubuntu-20.04
environment:
name: ${{ github.ref }}
env:
VERBOSE: 0
PYTHONUNBUFFERED: 1
steps:
- name: "Checkout code"
if: github.event.pull_request.head.repo.full_name == github.repository
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
- name: "Checkout code (fork)"
if: github.event.pull_request.head.repo.full_name != github.repository
uses: actions/checkout@v3
with:
fetch-depth: 0
submodules: true
ref: ${{github.event.pull_request.head.ref}}
repository: ${{github.event.pull_request.head.repo.full_name}}
- name: "Install system dependencies"
run: |
sudo apt-get install brotli pigz parallel python3 rename --yes -qq >/dev/null
- name: "Install Python dependencies"
run: |
pip3 install -r requirements.txt
- name: "Rebuild, commit and push datasets (from a fork)"
if: github.event.pull_request.head.repo.full_name != github.repository
run: |
git config --global user.email "nextstrain-bot-from-fork"
git config --global user.name "[email protected]"
./scripts/rebuild --input-dir 'data/' --output-dir 'data_output/' --no-pull --push --repo="${GITHUB_REPOSITORY}"
- name: "Rebuild, commit and push (non-release branch)"
if: github.ref != 'refs/heads/release'
run: |
git config --global user.email "${{ secrets.BOT_GIT_USER_EMAIL }}"
git config --global user.name "${{ secrets.BOT_GIT_USER_NAME }}"
./scripts/rebuild --input-dir 'data/' --output-dir 'data_output/' --push --repo="${GITHUB_REPOSITORY}"
- name: "Rebuild, commit, push and make a release (release branch)"
if: github.ref == 'refs/heads/release'
env:
GH_TOKEN: ${{ github.token }}
run: |
git config --global user.email "${{ secrets.BOT_GIT_USER_EMAIL }}"
git config --global user.name "${{ secrets.BOT_GIT_USER_NAME }}"
./scripts/rebuild --input-dir 'data/' --output-dir 'data_output/' --release --repo="${GITHUB_REPOSITORY}"
- name: "Deploy dataset server"
if: ${{ endsWith(github.ref, '/master') || endsWith(github.ref, '/staging') || endsWith(github.ref, '/release') }}
env:
DATA_AWS_S3_BUCKET: ${{ secrets.DATA_AWS_S3_BUCKET }}
DATA_AWS_CLOUDFRONT_DISTRIBUTION_ID: ${{ secrets.DATA_AWS_CLOUDFRONT_DISTRIBUTION_ID }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: us-east-2
run: |
pushd /tmp >/dev/null
curl -fsSL "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip -oqq awscliv2.zip
sudo ./aws/install --update
popd >/dev/null
aws --version
./scripts/upload 'data_output/'