v1.5.16 #40
Workflow file for this run
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
name: Release | |
on: | |
push: | |
tags: | |
- '[0-9]+.[0-9]+.[0-9]+' | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Roswell | |
env: | |
LISP: sbcl-bin | |
ROSWELL_INSTALL_DIR: /usr | |
run: | | |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh | |
- name: Install Ultralisp | |
run: ros -e '(ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)' | |
- name: Install Rove | |
run: ros install rove | |
- name: Run tests | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: | | |
PATH="~/.roswell/bin:$PATH" | |
rove qlot.asd | |
- name: Setup Qlot | |
run: scripts/setup.sh | |
- name: Output Ultralisp version | |
id: ultralisp_version | |
run: | | |
ros -e '(format t "ultralisp_version=~A~%" (ql-dist:version (ql-dist:dist "quicklisp")))' >> $GITHUB_OUTPUT | |
outputs: | |
ultralisp_version: ${{ steps.ultralisp_version.outputs.ultralisp_version }} | |
release: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install Roswell | |
env: | |
LISP: sbcl-bin | |
ROSWELL_INSTALL_DIR: /usr | |
run: | | |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh | |
- name: Install Ultralisp | |
run: ros -e '(ql-dist:install-dist "http://dist.ultralisp.org/ultralisp/${{ needs.test.outputs.ultralisp_version }}/distinfo.txt" :prompt nil)' | |
- name: Setup Qlot | |
run: scripts/setup.sh | |
- name: Bundle dependencies | |
run: scripts/run.sh bundle --exclude qlot-tests --exclude "qlot-tests/*" | |
- name: Create a bundled tarball | |
run: | | |
tar cvfz /tmp/qlot-${{ github.ref_name }}.tar.gz --exclude '.git' --exclude '.qlot' --exclude '.github' -C ../ qlot | |
echo -e "#!/bin/sh\n\nset -eu\n\nVERSION=${{ github.ref }}\nQLOT_ARCHIVE=https://github.com/fukamachi/qlot/releases/download/${GITHUB_REF_NAME}/qlot-${GITHUB_REF_NAME}.tar.gz\n" > /tmp/qlot-installer-${{ github.ref_name }}.sh | |
tail -n +7 scripts/qlot-installer.sh >> /tmp/qlot-installer-${{ github.ref_name }}.sh | |
- name: Release and publish assets | |
uses: softprops/action-gh-release@v1 | |
with: | |
draft: true | |
files: | | |
/tmp/qlot-${{ github.ref_name }}.tar.gz | |
/tmp/qlot-installer-${{ github.ref_name }}.sh | |
publish_image: | |
needs: test | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
with: | |
image: tonistiigi/binfmt:qemu-v8.1.5 | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v3 | |
with: | |
images: | | |
fukamachi/qlot | |
tags: | | |
type=ref,event=tag | |
- name: Build and publish | |
uses: docker/build-push-action@v2 | |
with: | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
build-args: ULTRALISP_VERSION=${{ needs.test.outputs.ultralisp_version }} |