-
Notifications
You must be signed in to change notification settings - Fork 10
102 lines (86 loc) · 4.97 KB
/
create-new-riju-release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
name: Deploy
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
Build-and-Release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Build Release Artifacts
# --incompatible_restrict_string_escapes=false because there's a bug in
# https://github.com/bazelbuild/rules_docker/blob/7da0de3d094aae5601c45ae0855b64fb2771cd72/container/push.bzl#L34
# where they're using an invalid escape sequence "\{". Instead of filing a bug on them I'm just working around it...
run: |
# We must build the Conditions.claro program so that the necessary build artifacts are available.
# Note: This --nojava_header_compilation flag is necessary because Lombok
# fails with error "Turbine is not currently supported by lombok."
# Followed the resolution here: https://githubmemory.com/repo/rzwitserloot/lombok/issues/2911
# I don't know what any of this means.... but hey it works now *shrug*
bazel build --nojava_header_compilation //src/java/com/claro/claro_programs:conditions_compiled_claro_image
cd bazel-bin/src/java/com/claro
# Copy the AutoValue and Lombok jar deps to the location where Riju expects them to be.
cp ../../../../external/maven/v1/https/jcenter.bintray.com/com/google/auto/value/auto-value/1.5.3/auto-value-1.5.3.jar claro_programs
cp ../../../../external/maven/v1/https/jcenter.bintray.com/org/projectlombok/lombok/1.18.20/lombok-1.18.20.jar claro_programs
# Setup a dir where Riju generated code will be placed during Riju deployment.
mkdir claro_programs/com
mkdir claro_programs/com/claro
# Now bump the version number that the REPL will show to the user. Put CLARO_VERSION.txt file
# in the claro_programs dir because this is the only directory getting packaged up and released
# for Riju and it's where the Riju config should be running the code from, making this file
# available at runtime to the REPL since in Riju it's being run outside of the Bazel sandbox.
echo "v0.1.${{ github.run_number }}" > claro_programs/CLARO_VERSION.txt
# Now we finally just need to create our tarball release of the claro_programs/ dir.
tar --exclude='claro_programs/conditions_compiled_claro_image.runfiles/local_jdk' --exclude='claro_programs/conditions_compiled_claro_image.runfiles/claro-lang/external/local_jdk' -hczvf claro-lang-bazel-bin.tar.gz claro_programs/
env:
# Github Actions is using Bazelisk to keep Bazel up-to-date by default. Unfortunately I'm not doing this locally yet..
# So, in order to make sure this is building with the same version of Bazel I'm using for local development, manually
# set the version to what I'm using locally here.
# TODO(steving) In the future: upgrade to start using Bazelisk locally and then drop this.
USE_BAZEL_VERSION: 3.7.2
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: v0.1.${{ github.run_number }}
name: v0.1.${{ github.run_number }} Automated Riju Release
body: |
# This is an automated relase of resources needed to deploy Claro as part of Riju.
Check it out online at [riju.codes/claro](https://riju.codes/claro)
## Riju may still be running an old version:
Keep in mind that the latest Claro Release is only picked up by Riju when it goes through a redeploy. However, Riju is a project externally developed and maintained, so it generally may take some time for new Claro Releases to reach Riju.
draft: false
prerelease: false
fail_on_unmatched_files: true
files: |
bazel-bin/src/java/com/claro/claro-lang-bazel-bin.tar.gz
bazel-claro-lang/bazel-out/host/bin/src/java/com/claro/claro_compiler_binary_deploy.jar
Deploy-User-Docs-to-GH-Pages:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install mdbook
run: |
mkdir mdbook
curl -sSL https://github.com/rust-lang/mdBook/releases/download/v0.4.25/mdbook-v0.4.25-x86_64-unknown-linux-gnu.tar.gz | tar -xz --directory=./mdbook
echo `pwd`/mdbook >> $GITHUB_PATH
- name: Deploy GitHub Pages
run: |
cd mdbook-docs
mdbook build
git worktree add gh-pages
git config user.name "Deploy from CI"
git config user.email "jasonmail99@gmail.com"
cd gh-pages
# Delete the ref to avoid keeping history.
git update-ref -d refs/heads/gh-pages
rm -rf *
mv ../book/* .
git add .
git commit -m "Deploy $GITHUB_SHA to gh-pages"
git push --force --set-upstream origin gh-pages