diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..4acfea8a --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,70 @@ +name: Build & Publish + +on: + push: + branches: + - main + pull_request: {} + +jobs: + build-validate: + env: + # ruby/setup-ruby@v1 does not offer a way to change the cached gems path. + # See https://github.com/ruby/setup-ruby/issues/291 + GLOBAL_GEMS: 1 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Set up Ruby + uses: ruby/setup-ruby@v1 + with: + bundler-cache: true + cache-version: 2 + + - name: Build & Validate + run: rake validate + + - name: Upload Pages artifact + uses: actions/upload-pages-artifact@v3 + + docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Build container + run: docker-compose build + + - name: Build site in container + run: docker-compose run docs rake build + + deploy: + name: Deploy to GitHub Pages + runs-on: ubuntu-latest + needs: build-validate + if: ${{ github.ref == 'refs/heads/main' }} + + # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. + # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. + concurrency: + group: "pages" + cancel-in-progress: false + + # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages + permissions: + contents: read + pages: write + id-token: write + + environment: + name: github-pages + # Tell GitHub where we deployed to + url: ${{ steps.deployment.outputs.page_url }} + + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml deleted file mode 100644 index edd38f4a..00000000 --- a/.github/workflows/validate.yml +++ /dev/null @@ -1,40 +0,0 @@ -name: Validate - -on: - push: - branches: - - main - pull_request: {} - -jobs: - validate: - runs-on: ubuntu-latest - env: - # ruby/setup-ruby@v1 does not offer a way to change the cached gems path. - # See https://github.com/ruby/setup-ruby/issues/291 - GLOBAL_GEMS: 1 - steps: - - uses: actions/checkout@v4 - with: - submodules: recursive - - - name: Set up Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: 2.7 - bundler-cache: true - cache-version: 2 - - - name: Build & Validate - run: rake validate - - docker: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Build container - run: docker-compose build - - - name: Build site in container - run: docker-compose run docs rake build diff --git a/.ruby-version b/.ruby-version new file mode 100644 index 00000000..2c9b4ef4 --- /dev/null +++ b/.ruby-version @@ -0,0 +1 @@ +2.7.3