Skip to content

Commit

Permalink
Merge pull request #576 from ocaml-sf/deploy-artifacts
Browse files Browse the repository at this point in the history
Deploy artifacts to github-pages
  • Loading branch information
AltGr authored Dec 5, 2023
2 parents 6cee13c + 01eae90 commit a1ae152
Show file tree
Hide file tree
Showing 2 changed files with 93 additions and 10 deletions.
81 changes: 81 additions & 0 deletions .github/workflows/publish-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Simple workflow for deploying static content to GitHub Pages
name: Deploy Jekyll site and static content to Pages

on:
# Run on master branch after the static builds are successful
workflow_run:
workflows: ["Generate static binaries"]
branches: [$default-branch]
types:
- completed

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# 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

jobs:
# Build job
build:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Pages
uses: actions/configure-pages@v4
- name: Build with Jekyll
uses: actions/jekyll-build-pages@v1
with:
source: ./
destination: ./_site
# Not the default gh download-artifact action, which doesn't work
# between workflows
- name: Get previous artifact learn-ocaml-www.zip
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
name: learn-ocaml-www.zip
path: _site/artifacts/
- name: Get previous artifact learn-ocaml-linux-x86_64
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
name: learn-ocaml-linux-x86_64
path: _site/artifacts/
- name: Get previous artifact learn-ocaml-darwin-x86_64
uses: dawidd6/action-download-artifact@v2
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
name: learn-ocaml-darwin-x86_64
path: _site/artifacts/
- name: Generate HTML index
run: |
cd _site/artifacts
tree -H . -L 1 --noreport --dirsfirst -T Learn-ocaml latest development artifacts' --charset utf-8 -o index.html
- name: Upload artifact
uses: actions/upload-pages-artifact@v2

# Deployment job
deploy:
# Don't run if tests failed
if: ${{ github.event.workflow_run.conclusion == 'success' }}
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v3
22 changes: 12 additions & 10 deletions .github/workflows/static-builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Generate static binaries
on:
push:
branches:
- master
- $default-branch
tags:
- '*'
pull_request:
Expand All @@ -11,6 +11,9 @@ on:
schedule:
# test master every Saturday at 08:00 UTC
- cron: '0 8 * * 6'
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
learn-ocaml-www-zip:
name: Build learn-ocaml-www.zip archive
Expand Down Expand Up @@ -41,7 +44,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
artifact: ["learn-ocaml-linux-x86_64.tar.gz"]
artifact: ["learn-ocaml-linux-x86_64"]
# we could use an env var, albeit it would be less convenient
steps:
- name: Check out the repo
Expand All @@ -57,13 +60,13 @@ jobs:
- name: Archive static binaries
run: |
uname -a
tar cvzf ${{ matrix.artifact }} \
learn-ocaml learn-ocaml-server learn-ocaml-client
mkdir -p ${{ matrix.artifact }}
cp learn-ocaml learn-ocaml-server learn-ocaml-client ${{ matrix.artifact }}
- name: Upload static binaries
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}/*
static-bin-macos:
name: Builds static Macos binaries
if: ${{ github.event_name != 'schedule' || github.repository == 'ocaml-sf/learn-ocaml' }}
Expand All @@ -73,7 +76,7 @@ jobs:
OPAMDEPEXTYES: 1
strategy:
matrix:
artifact: ["learn-ocaml-darwin-x86_64.tar.gz"]
artifact: ["learn-ocaml-darwin-x86_64"]
# we could use an env var, albeit it would be less convenient
steps:
- name: Check out the repo
Expand Down Expand Up @@ -107,11 +110,10 @@ jobs:
- name: Archive static binaries
run: |
uname -a
cd _build/install/default/bin
tar cvzhf "$OLDPWD"/${{ matrix.artifact }} \
learn-ocaml learn-ocaml-server learn-ocaml-client
mkdir -p ${{ matrix.artifact }}
cp _build/install/default/bin/learn-ocaml{,-server,-client} ${{ matrix.artifact }}
- name: Upload static binaries
uses: actions/upload-artifact@v2
with:
name: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}/*

0 comments on commit a1ae152

Please sign in to comment.