diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7fde366d0a..c3184270ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,8 +4,8 @@ on: pull_request: push: branches: - - "develop" - - "main" + - 'develop' + - 'main' jobs: # Currently GH Actions provides no simple method for "sharing" @@ -20,11 +20,11 @@ jobs: matrix: test_env: [django, functional, api] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Cache Docker layers - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /tmp/.buildx-cache # using `-v3` in key to clear old cache due to errors @@ -40,7 +40,7 @@ jobs: run: | docker volume create --name=seed_pgdata docker volume create --name=seed_media - docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d + docker compose -f docker-compose.yml -f docker-compose.dev.yml up -d - name: Migrate env: DJANGO_LOG_LEVEL: ERROR @@ -52,16 +52,14 @@ jobs: docker exec --env DJANGO_LOG_LEVEL seed_web ./manage.py migrate docker exec --env DJANGO_LOG_LEVEL seed_web ./manage.py create_default_user --username=demo@example.com --password=demo123 docker exec --env DJANGO_LOG_LEVEL seed_web /bin/bash -c 'echo "y" | ./manage.py make_superuser --user demo@example.com' - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v4 + with: + node-version: 20 - name: Install dependencies run: | npm install sudo apt update sudo apt install -y xvfb - # use unstable now which is 116, 115 was marked as unstable recently and needs to be patched. - wget --no-verbose -O /tmp/chrome.deb https://dl.google.com/linux/direct/google-chrome-unstable_current_amd64.deb - sudo apt install -y /tmp/chrome.deb - google-chrome --version - name: Test Django if: ${{ matrix.test_env == 'django' }} env: @@ -76,7 +74,7 @@ jobs: DJANGO_LOG_LEVEL: ERROR run: | docker exec seed_web touch /seed/config/settings/local_untracked.py - docker exec --env SEED_PM_UN --env SEED_PM_PW --env DJANGO_LOG_LEVEL --env SF_INSTANCE --env SF_USERNAME --env SF_PASSWORD --env SF_SECURITY_TOKEN --env SF_DOMAIN seed_web coverage run manage.py test seed --settings=config.settings.docker_dev + docker exec --env SEED_PM_UN --env SEED_PM_PW --env DJANGO_LOG_LEVEL --env SF_INSTANCE --env SF_USERNAME --env SF_PASSWORD --env SF_SECURITY_TOKEN --env SF_DOMAIN seed_web coverage run manage.py test --settings=config.settings.docker_dev if [[ ! -z "${COVERALLS_REPO_TOKEN}" ]]; then docker exec --env COVERALLS_REPO_TOKEN seed_web coveralls else @@ -85,13 +83,10 @@ jobs: - name: Test Frontend if: ${{ matrix.test_env == 'functional' }} env: - DISPLAY: ":99" + DISPLAY: ':99' run: | - CHROME_VERSION=$(google-chrome --version | awk '{ print $NF }') - echo "Getting webdriver for chrome version ${CHROME_VERSION}" - ./node_modules/protractor/bin/webdriver-manager update --versions.chrome=${CHROME_VERSION} --gecko=false Xvfb :99 & - ./node_modules/protractor/bin/protractor seed/static/seed/tests/protractor-tests/protractorConfig.js + npm test - name: Test API if: ${{ matrix.test_env == 'api' }} run: | @@ -104,16 +99,19 @@ jobs: runs-on: ubuntu-22.04 strategy: matrix: - tox_env: [docs, precommit, mypy] + tox_env: [docs, precommit, mypy, lint] steps: - - uses: actions/checkout@v3 - - uses: actions/setup-python@v4 + - uses: actions/checkout@v4 + - uses: actions/setup-python@v5 + with: + python-version: '3.9' + - uses: actions/setup-node@v4 with: - python-version: "3.9" + node-version: 20 - name: Install deps run: | pip install --upgrade pip - pip install tox==2.7.0 + pip install tox==4.20.0 sudo apt update sudo apt install gdal-bin - name: Setup config