From fb99350d8a9135a9fe8304fec5b80555a7000ac3 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sat, 26 Apr 2025 22:54:53 +0200 Subject: [PATCH] Scripts: use commons action for setup --- .forgejo/snippets/setup.yml | 17 +++++++++++ .forgejo/workflows/daily_data_maintenance.yml | 19 ++++-------- .forgejo/workflows/deploy_hosted.yml | 13 +------- .forgejo/workflows/deploy_single_theme.yml | 13 +------- .../workflows/monthly_data_maintenance.yml | 30 +++++++++++++++++++ .forgejo/workflows/update_database.yml | 11 ++----- 6 files changed, 57 insertions(+), 46 deletions(-) create mode 100644 .forgejo/snippets/setup.yml create mode 100644 .forgejo/workflows/monthly_data_maintenance.yml diff --git a/.forgejo/snippets/setup.yml b/.forgejo/snippets/setup.yml new file mode 100644 index 0000000000..a797e7f40b --- /dev/null +++ b/.forgejo/snippets/setup.yml @@ -0,0 +1,17 @@ +name: 'Setup' +description: 'Checkout code, set up Nodejs run `npm ci`' +runs: + using: 'composite' + steps: + - uses: https://source.mapcomplete.org/actions/checkout@v4 + + - name: Checkout up Node.js + uses: https://source.mapcomplete.org/actions/setup-node@v4 + with: + node-version: "20" + cache: "npm" + cache-dependency-path: package-lock.json + - name: install deps + run: npm ci + shell: bash + diff --git a/.forgejo/workflows/daily_data_maintenance.yml b/.forgejo/workflows/daily_data_maintenance.yml index e39f5872ac..dc10504633 100644 --- a/.forgejo/workflows/daily_data_maintenance.yml +++ b/.forgejo/workflows/daily_data_maintenance.yml @@ -4,21 +4,10 @@ on: - cron: "0 2 * * *" jobs: - daily_data_maintenance: + create_community_index: runs-on: [ ubuntu-latest, hetzner-access ] steps: - - uses: https://source.mapcomplete.org/actions/checkout@v4 - - - name: Set up Node.js - uses: https://source.mapcomplete.org/actions/setup-node@v4 - with: - node-version: "20" - cache: "npm" - cache-dependency-path: package-lock.json - - - name: install deps - run: npm ci - shell: bash + - uses: ./.forgejo/snippets/setup - name: create community index files shell: bash @@ -31,6 +20,10 @@ jobs: scp community-index.zip hetzner:data/ ssh hetzner "cd data && rm -rf community-index/ && unzip community-index.zip && rm community-index.zip" + update_statistics: + runs-on: [ ubuntu-latest, hetzner-access ] + steps: + - uses: ./.forgejo/snippets/setup - name: Update statistics shell: bash diff --git a/.forgejo/workflows/deploy_hosted.yml b/.forgejo/workflows/deploy_hosted.yml index f5a2e371f9..678549a129 100644 --- a/.forgejo/workflows/deploy_hosted.yml +++ b/.forgejo/workflows/deploy_hosted.yml @@ -9,18 +9,7 @@ jobs: deploy_on_hosted: runs-on: [ubuntu-latest, hetzner-access] steps: - - uses: https://source.mapcomplete.org/actions/checkout@v4 - - - name: Set up Node.js - uses: https://source.mapcomplete.org/actions/setup-node@v4 - with: - node-version: "20" - cache: "npm" - cache-dependency-path: package-lock.json - - - name: install deps - run: npm ci - shell: bash + - uses: ./.forgejo/snippets/setup - name: create generated dir run: mkdir -p ./assets/generated diff --git a/.forgejo/workflows/deploy_single_theme.yml b/.forgejo/workflows/deploy_single_theme.yml index 89e0acfa8b..0615d6c84c 100644 --- a/.forgejo/workflows/deploy_single_theme.yml +++ b/.forgejo/workflows/deploy_single_theme.yml @@ -7,18 +7,7 @@ jobs: deploy_single_theme: runs-on: [ ubuntu-latest, hetzner-access ] steps: - - uses: https://source.mapcomplete.org/actions/checkout@v4 - - - name: Set up Node.js - uses: https://source.mapcomplete.org/actions/setup-node@v4 - with: - node-version: "20" - cache: "npm" - cache-dependency-path: package-lock.json - - - name: install deps - run: npm ci - shell: bash + - uses: ./.forgejo/snippets/setup - name: create generated dir run: mkdir ./assets/generated diff --git a/.forgejo/workflows/monthly_data_maintenance.yml b/.forgejo/workflows/monthly_data_maintenance.yml new file mode 100644 index 0000000000..2c33a1f177 --- /dev/null +++ b/.forgejo/workflows/monthly_data_maintenance.yml @@ -0,0 +1,30 @@ +on: + workflow_dispatch: + schedule: + - cron: "0 2 1 * *" + +jobs: + monthly_data_maintenance: + runs-on: [ ubuntu-latest, hetzner-access ] + steps: + - uses: ./.forgejo/snippets/setup + + - name: create community index files + shell: bash + run: npm run download:community-index -- -- community-index/ + + - name: upload community index + shell: bash + run: | + zip community-index.zip community-index/* + scp community-index.zip hetzner:data/ + ssh hetzner "cd data && rm -rf community-index/ && unzip community-index.zip && rm community-index.zip" + + + - name: Update statistics + shell: bash + run: | + scp -r hetzner:~/data/changeset-metadata/ . + npm run download:stats -- -- ./ + scp -r ./changeset-metadata/* hetzner:~/data/changeset-metadata/ + diff --git a/.forgejo/workflows/update_database.yml b/.forgejo/workflows/update_database.yml index b5b035e8ea..d371f890ff 100644 --- a/.forgejo/workflows/update_database.yml +++ b/.forgejo/workflows/update_database.yml @@ -8,18 +8,11 @@ jobs: daily_data_maintenance: runs-on: [ lain ] steps: - - uses: https://source.mapcomplete.org/actions/checkout@v4 - - - name: Set up Node.js - uses: https://source.mapcomplete.org/actions/setup-node@v4 - with: - node-version: "20" - cache: "npm" - cache-dependency-path: package-lock.json + - uses: ./.forgejo/snippets/setup - name: Init all dependencies and layers shell: bash - run: npm ci && npm run init + run: npm run init - name: Create export script shell: bash