Skip to content

Do not cd

Do not cd #8

Workflow file for this run

name: CI
on:
push:
branches:
- "*"
jobs:
build:
runs-on: ubuntu-latest
outputs:
build-cache-key: ${{ steps.generate-cache-key.outputs.build-cache-key }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: jdx/mise-action@v2
- name: Build
run: |
deno task build
- id: generate-cache-key
run: |
echo "build-cache-key=build-${{ hashFiles('deno.lock', 'bootstrap/src/**') }}" >> "$GITHUB_OUTPUT"
- uses: actions/cache/save@v4
id: save-build-cache
with:
path: bootstrap/_build
key: ${{ steps.generate-cache-key.outputs.build-cache-key }}
test-linux:
runs-on: ubuntu-latest
needs: build
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/cache/restore@v4
with:
path: bootstrap/_build
key: ${{ needs.build.outputs.build-cache-key }}
- name: "Workaround: Prepare ~/.local/share/chezmoi"
run: |
ln -s "$(pwd)" "$HOME/.local/share/chezmoi"
- name: Install dependencies
run: |
sudo apt install -y zsh
- name: Install goss
run: |
sudo curl -L https://github.com/goss-org/goss/releases/latest/download/goss-linux-amd64 -o /usr/local/bin/goss
sudo chmod +rx /usr/local/bin/goss
- name: Run test
run: |
./bootstrap/_build/bootstrap-x86_64-unknown-linux-gnu
# Run script twice to test idempotency
./bootstrap/_build/bootstrap-x86_64-unknown-linux-gnu
goss validate --format documentation
test-macos:
runs-on: macos-latest
needs: build
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/cache/restore@v4
with:
path: bootstrap/_build
key: ${{ needs.build.outputs.build-cache-key }}
- name: "Workaround: Prepare ~/.local/share/chezmoi"
run: |
ln -s "$(pwd)" "$HOME/.local/share/chezmoi"
- name: Install goss
run: |
sudo curl -L https://github.com/goss-org/goss/releases/latest/download/goss-darwin-amd64 -o /usr/local/bin/goss
sudo chmod +rx /usr/local/bin/goss
- name: Run test
run: |
ls .
ls bootstrap
ls bootstrap/_build
./bootstrap/_build/bootstrap-x86_64-apple-darwin
# Run script twice to test idempotency
./bootstrap/_build/bootstrap-x86_64-apple-darwin
GOSS_USE_ALPHA=1 goss validate --format documentation
test-windows:
runs-on: windows-latest
needs: build
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/cache/restore@v4
with:
path: bootstrap/_build
key: ${{ needs.build.outputs.build-cache-key }}
- name: "Workaround: Prepare ~/.local/share/chezmoi"
run: |
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.local\share"
New-Item -ItemType SymbolicLink -Value (Get-Location) -Path "$env:USERPROFILE\.local\share\chezmoi"
- name: Run test
run: |
ls .
ls bootstrap
ls bootstrap/_build
. .\bootstrap\_build\bootstrap-x86_64-pc-windows-msvc.exe
# Run script twice to test idempotency
. .\bootstrap\_build\bootstrap-x86_64-pc-windows-msvc.exe
test-static:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: jdx/mise-action@v2
- name: Install dependencies
run: sudo apt install -y zsh
- name: Run test
run: deno run -A ./test/static.ts
actionlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Download actionlint
id: get_actionlint
run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
shell: bash
- name: Check workflow files
run: ${{ steps.get_actionlint.outputs.executable }} -color
shell: bash
release:
needs:
[build, test-linux, test-macos, test-windows, test-static, actionlint]
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- uses: actions/cache/restore@v4
with:
path: bootstrap/_build
key: ${{ needs.build.outputs.build-cache-key }}
- id: generate-version
run: |
echo "version=v$(date --utc '+%Y%m%d%H%M%S')" >> "$GITHUB_OUTPUT"
- uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.generate-version.outputs.version }}