Unzip, extract, and move into web page. #617
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
on: | |
- push | |
jobs: | |
build-and-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@main | |
- name: Install dependencies | |
run: | | |
curl -Ls https://github.com/jgm/pandoc/releases/download/2.11.2/pandoc-2.11.2-1-amd64.deb -o pandoc.deb | |
sudo dpkg -i pandoc.deb | |
sudo apt-get install nasm | |
sudo apt-get install fonts-stix | |
sudo apt-get install libunistring-dev | |
- name: Install Racket | |
uses: Bogdanp/[email protected] | |
with: | |
architecture: 'x64' | |
distribution: 'full' | |
variant: 'CS' | |
version: '8.14' | |
- name: Install a86 and langs | |
run: | | |
git clone https://github.com/cmsc430/a86.git | |
git clone https://github.com/cmsc430/langs.git | |
raco pkg install --auto a86/ | |
raco pkg install --auto langs/ | |
- name: Build and test | |
run: | | |
export LINK_DIR=/usr/lib/x86_64-linux-gnu | |
# raco pkg install --auto www/ | |
raco make www/main.scrbl | |
make -C www main | |
- name: Generate assignment zips | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT_ZIPS_WORKFLOW }} | |
run: | | |
curl -X POST \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: Bearer $GITHUB_TOKEN" \ | |
https://api.github.com/repos/cmsc430/assignments/actions/workflows/push.yml/dispatches \ | |
-d '{"ref":"main"}' | |
- name: Get zips run ID | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT_ZIPS_WORKFLOW }} | |
run: | | |
sleep 60 # give chance to finish | |
response=$(curl -s \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: token $GITHUB_TOKEN" \ | |
"https://api.github.com/repos/cmsc430/assignments/actions/runs?branch=main&status=success&per_page=1") | |
echo "Run response: $response" | |
run_id=$(echo "$response" | jq -r '.workflow_runs[0].id') | |
echo "RUN_ID=$run_id" >> $GITHUB_ENV | |
- name: Download assignment zips | |
env: | |
GITHUB_TOKEN: ${{ secrets.PAT_ZIPS_WORKFLOW }} | |
run: | | |
response=$(curl -s \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: token $GITHUB_TOKEN" \ | |
https://api.github.com/repos/cmsc430/assignments/actions/runs/${{ env.RUN_ID }}/artifacts) | |
echo "Run response: $response" | |
download_url=$(echo "$response" | jq -r '.artifacts[0].archive_download_url') | |
echo "Download URL: $download_url" | |
curl -L \ | |
-H "Accept: application/vnd.github+json" \ | |
-H "Authorization: token $GITHUB_TOKEN" \ | |
$download_url \ | |
-o artifacts.zip | |
- name: Extract assignment zips | |
run: | | |
unzip -l artifacts.zip | |
tar -xvf artifact.tar | |
mv knock-plus.zip www/main/code/ | |
- name: Archive www | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
name: github-pages | |
path: www/main | |
deploy: | |
needs: build-and-test | |
permissions: | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
steps: | |
- name: Deploy to GitHub pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |