Deploy Next.js site to Pages and paris en selle #374
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: Deploy Next.js site to Pages and paris en selle | |
on: | |
# Runs on pushes targeting the default branch | |
push: | |
branches: ['main'] | |
schedule: | |
- cron: '00 8 * * *' | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
fetch_data: | |
runs-on: ubuntu-latest | |
steps: | |
- name: fetch data | |
run: wget "https://parisdata.opendatasoft.com/api/v2/catalog/datasets/comptage-velo-donnees-compteurs/exports/csv?rows=-1&select=id_compteur%2Csum_counts%2Cdate&timezone=UTC" -O compteurs.csv | |
- name: fetch metadata | |
run: wget "https://parisdata.opendatasoft.com/api/v2/catalog/datasets/comptage-velo-compteurs/exports/csv" -O metadata.csv | |
- name: upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: opendata | |
path: | | |
compteurs.csv | |
metadata.csv | |
build: | |
runs-on: ubuntu-latest | |
needs: fetch_data | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: get the opendata | |
uses: actions/download-artifact@v4 | |
with: | |
name: opendata | |
path: public | |
- name: Install dependencies | |
run: yarn install | |
- name: prepare data | |
run: yarn prep | |
- name: Build with Next.js | |
env: | |
NEXT_PUBLIC_MAPBOX_TOKEN: ${{ secrets.NEXT_PUBLIC_MAPBOX_TOKEN }} | |
NEXT_PUBLIC_MAPBOX_CENTER: ${{ vars.NEXT_PUBLIC_MAPBOX_CENTER }} | |
NEXT_PUBLIC_MAPBOX_ZOOM: ${{ vars.NEXT_PUBLIC_MAPBOX_ZOOM }} | |
run: yarn build | |
- name: upload artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: website | |
path: out | |
deploy: | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: get the built site | |
uses: actions/download-artifact@v4 | |
with: | |
name: website | |
path: public | |
- name: install lftp | |
run: sudo apt update && sudo apt install lftp --yes | |
- name: transfert by ftp | |
run: lftp -e "set ssl:verify-certificate no ; mirror -R public /" -u "${{ secrets.CREDENTIALS }}" ftp-parisenselle.alwaysdata.net |