mirror of
				https://github.com/privacyguides/privacyguides.org.git
				synced 2025-11-04 13:27:53 +00:00 
			
		
		
		
	Generate website once per workflow
This commit is contained in:
		
							
								
								
									
										2
									
								
								.github/actions/build/action.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/actions/build/action.yml
									
									
									
									
										vendored
									
									
								
							@@ -3,8 +3,6 @@ description: 'Builds Jekyll Site'
 | 
			
		||||
runs:
 | 
			
		||||
  using: "composite"
 | 
			
		||||
  steps:
 | 
			
		||||
    - shell: bash
 | 
			
		||||
      run: npm install
 | 
			
		||||
    - shell: bash
 | 
			
		||||
      run: |
 | 
			
		||||
        sed -i "s/^     date:.*$/     date: $(TZ=UTC date "+%Y-%m-%d")/" _config.yml
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								.github/workflows/production.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								.github/workflows/production.yml
									
									
									
									
										vendored
									
									
								
							@@ -11,10 +11,9 @@ env:
 | 
			
		||||
  FONTAWESOME_NPM_AUTH_TOKEN: ${{ secrets.FONTAWESOME_NPM_AUTH_TOKEN }}
 | 
			
		||||
 | 
			
		||||
jobs:
 | 
			
		||||
  deploy:
 | 
			
		||||
    name: Rsync Deploy
 | 
			
		||||
  build:
 | 
			
		||||
    name: Jekyll Build
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    environment: production
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
@@ -31,12 +30,33 @@ jobs:
 | 
			
		||||
          .jekyll-cache
 | 
			
		||||
          .sass-cache
 | 
			
		||||
        key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
    - name: Install dependencies
 | 
			
		||||
      run: npm install
 | 
			
		||||
    - name: Build website
 | 
			
		||||
      uses: ./.github/actions/build
 | 
			
		||||
    - run: tar cvf site.tar _site
 | 
			
		||||
    - name: Upload generated Jekyll site
 | 
			
		||||
      uses: actions/upload-artifact@v2
 | 
			
		||||
      with:
 | 
			
		||||
        name: generated-site
 | 
			
		||||
        path: site.tar
 | 
			
		||||
 | 
			
		||||
  deploy:
 | 
			
		||||
    name: Rsync Deploy
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    environment: production
 | 
			
		||||
    needs: build
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - name: Download generated Jekyll site
 | 
			
		||||
      uses: actions/download-artifact@v2
 | 
			
		||||
      with:
 | 
			
		||||
        name: generated-site
 | 
			
		||||
    - run: tar xvf site.tar
 | 
			
		||||
    - name: Copy built site to production
 | 
			
		||||
      run: |
 | 
			
		||||
        mkdir -p ~/.ssh
 | 
			
		||||
        echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
 | 
			
		||||
        chmod 700 ~/.ssh/id_rsa
 | 
			
		||||
        ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
 | 
			
		||||
        rsync -azP --delete ${{ github.workspace }}/_site/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:privacyguides.org-deploy
 | 
			
		||||
        rsync -azP --delete _site/ ${{ secrets.SSH_USERNAME }}@${{ secrets.SSH_HOST }}:privacyguides.org-deploy
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										258
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										258
									
								
								.github/workflows/tests.yml
									
									
									
									
										vendored
									
									
								
							@@ -18,9 +18,6 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - uses: ruby/setup-ruby@v1
 | 
			
		||||
      with:
 | 
			
		||||
        bundler-cache: true
 | 
			
		||||
    - name: Cache node modules
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
@@ -32,24 +29,23 @@ jobs:
 | 
			
		||||
      with:
 | 
			
		||||
        node-version: '14'
 | 
			
		||||
    - run: npm install
 | 
			
		||||
    - run: npm run assets:install
 | 
			
		||||
    - run: tar cvf node_modules.tar node_modules
 | 
			
		||||
    - name: Upload node_modules for Jekyll build
 | 
			
		||||
      uses: actions/upload-artifact@v2
 | 
			
		||||
      with:
 | 
			
		||||
        name: node_modules
 | 
			
		||||
        path: node_modules.tar
 | 
			
		||||
 | 
			
		||||
  build:
 | 
			
		||||
    name: "Jekyll Build"
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: deps
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - uses: ruby/setup-ruby@v1
 | 
			
		||||
      with:
 | 
			
		||||
        bundler-cache: true
 | 
			
		||||
    - name: Cache node modules
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        path: ~/.npm
 | 
			
		||||
        key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
        restore-keys: |
 | 
			
		||||
          ${{ runner.os }}-npm-
 | 
			
		||||
    - uses: actions/setup-node@v2
 | 
			
		||||
      with:
 | 
			
		||||
        node-version: '14'
 | 
			
		||||
@@ -62,40 +58,36 @@ jobs:
 | 
			
		||||
        key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
        restore-keys: |
 | 
			
		||||
          ${{ runner.os }}-jekyll-
 | 
			
		||||
    - name: Build website
 | 
			
		||||
      uses: ./.github/actions/build
 | 
			
		||||
    - name: Set Date and Time
 | 
			
		||||
      run: |
 | 
			
		||||
        sed -i "s/^     date:.*$/     date: $(TZ=UTC date "+%Y-%m-%d")/" _config.yml
 | 
			
		||||
        sed -i "s/^     time:.*$/     time: $(TZ=UTC date "+%H:%M:%S %Z")/" _config.yml
 | 
			
		||||
    - name: Download node_modules
 | 
			
		||||
      uses: actions/download-artifact@v2
 | 
			
		||||
      with:
 | 
			
		||||
        name: node_modules
 | 
			
		||||
    - run: tar xvf node_modules.tar
 | 
			
		||||
    - name: Generate Website
 | 
			
		||||
      run: npm run build
 | 
			
		||||
    - run: tar cvf site.tar _site
 | 
			
		||||
    - name: Upload generated Jekyll site
 | 
			
		||||
      uses: actions/upload-artifact@v2
 | 
			
		||||
      with:
 | 
			
		||||
        name: generated-site
 | 
			
		||||
        path: site.tar
 | 
			
		||||
 | 
			
		||||
  link:
 | 
			
		||||
    name: "Broken Hyperlinks (Internal)"
 | 
			
		||||
    runs-on: ubuntu-latest
 | 
			
		||||
    needs: [deps, build]
 | 
			
		||||
    needs: build
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
    - uses: actions/checkout@v2
 | 
			
		||||
    - uses: ruby/setup-ruby@v1
 | 
			
		||||
    - name: Download generated Jekyll site
 | 
			
		||||
      uses: actions/download-artifact@v2
 | 
			
		||||
      with:
 | 
			
		||||
        bundler-cache: true
 | 
			
		||||
    - name: Cache node modules
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        path: ~/.npm
 | 
			
		||||
        key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
        restore-keys: |
 | 
			
		||||
          ${{ runner.os }}-npm-
 | 
			
		||||
    - uses: actions/setup-node@v2
 | 
			
		||||
      with:
 | 
			
		||||
        node-version: '14'
 | 
			
		||||
    - name: Cache Jekyll build
 | 
			
		||||
      uses: actions/cache@v2
 | 
			
		||||
      with:
 | 
			
		||||
        path: |
 | 
			
		||||
          .jekyll-cache
 | 
			
		||||
          .sass-cache
 | 
			
		||||
        key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
        restore-keys: |
 | 
			
		||||
          ${{ runner.os }}-jekyll-
 | 
			
		||||
    - name: Build website
 | 
			
		||||
      uses: ./.github/actions/build
 | 
			
		||||
        name: generated-site
 | 
			
		||||
    - run: tar xvf site.tar
 | 
			
		||||
    - name: Copy built site to production
 | 
			
		||||
      run: |
 | 
			
		||||
        mv ${{ github.workspace }}/_site /tmp/
 | 
			
		||||
@@ -116,30 +108,11 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - name: Cache node modules
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: ~/.npm
 | 
			
		||||
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-npm-
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Cache HTMLProofer
 | 
			
		||||
        id: cache-htmlproofer
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
@@ -149,7 +122,7 @@ jobs:
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-htmlproofer-
 | 
			
		||||
            ${{ runner.os }}-htmlproofer
 | 
			
		||||
      - name: Check All External Links (Informational)
 | 
			
		||||
      - name: Check All External Links (Informational, Soft-Fail)
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
          directory: ${{ github.workspace }}/_site
 | 
			
		||||
@@ -168,30 +141,11 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - name: Cache node modules
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: ~/.npm
 | 
			
		||||
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-npm-
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Check Images
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
@@ -205,23 +159,11 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Check HTML
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
@@ -235,31 +177,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - name: Cache node modules
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: ~/.npm
 | 
			
		||||
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-npm-
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
      - name: Check HTML
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Validate HTML
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
          directory: ${{ github.workspace }}/_site
 | 
			
		||||
@@ -272,31 +195,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - name: Cache node modules
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: ~/.npm
 | 
			
		||||
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-npm-
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
      - name: Check HTML
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Validate HTML
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
          directory: ${{ github.workspace }}/_site
 | 
			
		||||
@@ -309,31 +213,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - name: Cache node modules
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: ~/.npm
 | 
			
		||||
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-npm-
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
      - name: Check HTML
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Validate HTML
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
          directory: ${{ github.workspace }}/_site
 | 
			
		||||
@@ -346,31 +231,12 @@ jobs:
 | 
			
		||||
 | 
			
		||||
    steps:
 | 
			
		||||
      - uses: actions/checkout@v2
 | 
			
		||||
      - uses: ruby/setup-ruby@v1
 | 
			
		||||
      - name: Download generated Jekyll site
 | 
			
		||||
        uses: actions/download-artifact@v2
 | 
			
		||||
        with:
 | 
			
		||||
          bundler-cache: true
 | 
			
		||||
      - name: Cache node modules
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: ~/.npm
 | 
			
		||||
          key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-npm-
 | 
			
		||||
      - uses: actions/setup-node@v2
 | 
			
		||||
        with:
 | 
			
		||||
          node-version: '14'
 | 
			
		||||
      - name: Cache Jekyll build
 | 
			
		||||
        uses: actions/cache@v2
 | 
			
		||||
        with:
 | 
			
		||||
          path: |
 | 
			
		||||
            .jekyll-cache
 | 
			
		||||
            .sass-cache
 | 
			
		||||
          key: ${{ runner.os }}-jekyll-${{ hashFiles('**/*.??m[ld]') }}
 | 
			
		||||
          restore-keys: |
 | 
			
		||||
            ${{ runner.os }}-jekyll-
 | 
			
		||||
      - name: Build website
 | 
			
		||||
        uses: ./.github/actions/build
 | 
			
		||||
      - name: Check HTML
 | 
			
		||||
          name: generated-site
 | 
			
		||||
      - run: tar xvf site.tar
 | 
			
		||||
      - name: Check OpenGraph
 | 
			
		||||
        uses: chabad360/htmlproofer@v1.1
 | 
			
		||||
        with:
 | 
			
		||||
          directory: ${{ github.workspace }}/_site
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user