diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f2fb314..9e566e2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -5,9 +5,16 @@ on: - main jobs: example: - runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-latest, macos-latest] + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v3 + - if: matrix.os == 'ubuntu-latest' + run: sudo rm /usr/local/bin/node + - if: matrix.os == 'macos-latest' + run: brew uninstall node - name: Setup example run: | mkdir -p example/.fluentci @@ -22,9 +29,10 @@ jobs: args: | setup working-directory: example + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Show Purescript version run: | - export PATH=${HOME}/.bun/bin:${PATH} type purs type spago purs --version diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..7894a9a --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,47 @@ +name: "Publish to Github Packages" +on: + push: + tags: + - "*" + workflow_dispatch: + inputs: + tag: + description: "The existing tag to publish" + type: "string" + required: true +jobs: + publish-wasm: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + with: + ref: ${{ inputs.tag || github.ref_name }} + - name: Setup Fluent CI + uses: fluentci-io/setup-fluentci@v5 + with: + wasm: true + plugin: rust + args: | + target_add wasm32-unknown-unknown + build --release --target wasm32-unknown-unknown + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Log in to the Container registry + uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Cache wasm-to-oci + uses: actions/cache@v4 + with: + path: wasm-to-oci_linux-amd64.tar.gz + key: wasm-to-oci-${{ runner.os }} + - name: Publish to the Container registry + run: | + [ -f wasm-to-oci_linux-amd64.tar.gz ] || pkgx wget https://github.com/fluentci-io/wasm-to-oci/releases/download/v0.1.2/wasm-to-oci_linux-amd64.tar.gz + tar xvf wasm-to-oci_linux-amd64.tar.gz + ./wasm-to-oci push target/wasm32-unknown-unknown/release/purescript.wasm ghcr.io/fluentci-io/purescript:${{ inputs.tag || github.ref_name }}-wasm diff --git a/src/lib.rs b/src/lib.rs index d8b9351..ba7077d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -20,6 +20,7 @@ pub fn setup(version: String) -> FnResult { let stdout = dag() .pkgx()? + .with_packages(vec!["nodejs.org@18.20.2"])? .with_exec(vec!["bun", "install", "-g", "spago"])? .with_exec(vec!["type npm || pkgx install npmjs.com"])? .with_exec(vec![