# This is a basic workflow to help you get started with Actions name: CI # Controls when the action will run. # We run this workflow on pushes and also every night to pick up fresh nightly builds on: push: branches: - main - production schedule: - cron: "0 3 * * *" workflow_dispatch: workflow_call: inputs: branch: required: true type: string secrets: NETLIFY_TOKEN: required: true GH_ACCESS_TOKEN: required: true # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: environment: name: ${{ github.ref_name }} # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: # If the workflow is called from this repo, check out the branch it's called from - uses: actions/checkout@v4 if: ${{ inputs.branch == '' }} with: repository: vyos/community.vyos.net ref: ${{ github.ref_name }} # If the workflow is called externally, check out the branch from its inputs - uses: actions/checkout@v3 if: ${{ inputs.branch != '' }} with: repository: vyos/community.vyos.net ref: ${{ inputs.branch }} - name: Install build dependencies from the repos run: | echo Installing build dependencies sudo apt-get update sudo apt-get -y install cmark make npm sudo npm install -g sass@1.32.8 # PyGitHub changes its API recently, distros use older versions, # so we install it from PyPI for now python -m venv . source ./bin/activate pip install pygithub jinja2 - name: Install soupault env: SOUPAULT_VERSION: 4.7.0 run: | echo Downloading and unpacking soupault wget https://github.com/PataphysicalSociety/soupault/releases/download/$SOUPAULT_VERSION/soupault-$SOUPAULT_VERSION-linux-x86_64.tar.gz tar xvf soupault-$SOUPAULT_VERSION-linux-x86_64.tar.gz sudo mv -v ./soupault-$SOUPAULT_VERSION-linux-x86_64/soupault /usr/bin/ - name: Build the site env: GH_ACCESS_TOKEN: ${{ secrets.GH_ACCESS_TOKEN }} # SOUPAULT_PROFILE is "staging" for the main branch, # it enabled a preview version warning. # The "live" profile simply enabled listing nightly builds SOUPAULT_OPTS: "--profile ${{ vars.SOUPAULT_PROFILE }} --profile live" run: | source ./bin/activate make all - name: Deploy to Netlify env: NETLIFY_TOKEN: ${{ secrets.NETLIFY_TOKEN }} run: | zip -r website.zip build/ curl --show-error --fail -H "Content-Type: application/zip" -H "Authorization: Bearer $NETLIFY_TOKEN" --data-binary "@website.zip" https://api.netlify.com/api/v1/sites/${{vars.NETLIFY_SITE_NAME}}/deploys