echo "CC=clang" >> $GITHUB_ENV
echo "PKG_CONFIG_SYSROOT_DIR=/" >> $GITHUB_ENV
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
# Remove build artifacts for the current crate, since it will be rebuilt every
# run anyway, but keep dependency artifacts to cache them.
# Must be placed after actions/cache so its post step runs first.
- - uses: pyTooling/Actions/with-post-step@v0.4.6
+ - uses: pyTooling/Actions/with-post-step@v4.1.0
with:
main: bash ./.github/actions/setup-rust/cleanup.sh
post: bash ./.github/actions/setup-rust/cleanup.sh
style:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
run:
shell: bash
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- uses: actionhippie/swap-space@v1
if: matrix.use_swap
with:
echo "$PWD/target/release" >> $GITHUB_PATH
- name: Publish release binary artifact
if: matrix.publish
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
path: target/${{ matrix.target }}/release/scryer-prolog*
name: scryer-prolog_${{ matrix.os }}_${{ matrix.target }}
needs: [build-test]
steps:
# Download prebuilt ubuntu binary from build-test job, setup logtalk
- - uses: actions/download-artifact@v3
+ - uses: actions/download-artifact@v4
with:
name: scryer-prolog_ubuntu-20.04_x86_64-unknown-linux-gnu
- run: |
|| echo "::warning ::logtalk compliance suite failed"
# -u "https://github.com/LogtalkDotOrg/logtalk3/tree/$LOGTALK_GIT_HASH/tests/prolog/" \
- name: Publish Logtalk test logs
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: logtalk-test-logs
path: '${{ env.LOGTALKUSER }}/tests/prolog/logtalk_tester_logs'
- name: Publish Logtalk test results artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: logtalk-test-results
path: '${{ env.LOGTALKUSER }}/tests/prolog/**/*.xml'
report:
runs-on: ubuntu-22.04
steps:
- - uses: actions/checkout@v3
+ - uses: actions/checkout@v4
- name: Setup Rust
uses: ./.github/actions/setup-rust
with:
run: |
RUSTC_BOOTSTRAP=1 cargo test --all -- -Z unstable-options --format json --report-time | cargo2junit > cargo_test_results.xml
- name: Publish cargo test results artifact
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: cargo-test-results
path: cargo_test_results.xml
- run: cargo bench --bench run_criterion -- --profile-time 60
- name: Publish benchmark results
- uses: actions/upload-artifact@v3
+ uses: actions/upload-artifact@v4
with:
name: benchmark-results
path: |
needs: [build-test]
if: startsWith(github.ref, 'refs/tags/v')
steps:
- - uses: actions/download-artifact@v3
+ - uses: actions/download-artifact@v4
- name: Zip binaries for release
run: |
zip scryer-prolog_macos-11.zip ./scryer-prolog_macos-11_x86_64-apple-darwin/scryer-prolog
zip scryer-prolog_windows-latest.zip ./scryer-prolog_windows-latest_x86_64-pc-windows-msvc/scryer-prolog.exe
zip scryer-prolog_wasm32.zip ./scryer-prolog_ubuntu-22.04_wasm32-unknown-unknown/scryer-prolog.wasm
- name: Release
- uses: softprops/action-gh-release@v1
+ uses: softprops/action-gh-release@v2
with:
files: |
scryer-prolog_macos-11.zip
steps:
- name: Checkout repository
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
# Workaround: https://github.com/docker/build-push-action/issues/461
- name: Setup Docker buildx
# https://github.com/docker/setup-buildx-action
- uses: docker/setup-buildx-action@v2.2.1
+ uses: docker/setup-buildx-action@v3
# Login against Docker registry
- name: Log into registry
# https://github.com/docker/login-action
- uses: docker/login-action@v2.1.0
+ uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Extract Docker metadata
id: meta
# https://github.com/docker/metadata-action
- uses: docker/metadata-action@v4.1.1
+ uses: docker/metadata-action@v5
with:
images: docker.io/${{ secrets.DOCKERHUB_USERNAME }}/scryer-prolog
tags: |
- name: Build and push Docker image
id: build-and-push
# https://github.com/docker/build-push-action
+ uses: docker/build-push-action@v6
+ # v4 adds SLSA Provenance attestation which is
+ # - unsupported by AWS Lambda
+ # - limited support by Google Cloud Run
+ # > If deploying a multi-architecture image, the manifest list must include linux/amd64.
+ # see https://github.com/docker/build-push-action/releases/tag/v4.0.0
+ # we might want to disable this if its a problem for someone
with:
context: .
push: true