Skip to content

Safer toml input parsing #263

Safer toml input parsing

Safer toml input parsing #263

Workflow file for this run

name: CI
on: [push, pull_request]
env:
BUILD_DIR: _build
XTB_VERSION: 6.5.0
jobs:
intel-meson-build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
fc: [ifort]
cc: [icc]
env:
FC: ${{ matrix.fc }}
CC: ${{ matrix.cc }}
APT_PACKAGES: >-
intel-oneapi-compiler-fortran-2023.1.0
intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic-2023.1.0
intel-oneapi-mkl-2023.1.0
intel-oneapi-mkl-devel-2023.1.0
# APT_PACKAGES: >-
# intel-oneapi-compiler-fortran
# intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
# intel-oneapi-mkl
# intel-oneapi-mkl-devel
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: 3.x
- name: Add Intel repository
if: contains(matrix.os, 'ubuntu')
run: |
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
rm GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB
echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list
sudo apt-get update
- name: Install Intel oneAPI compiler
if: contains(matrix.os, 'ubuntu')
run: |
sudo apt-get install ${{ env.APT_PACKAGES }}
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
- name: Install meson
run: pip3 install meson==1.2.0 ninja
- name: Git Sumbodules (including tblite patch)
run: |
git submodule update --init
cd subprojects/tblite
git apply ../packagefiles/tblite/tblite_patch.patch
cd ../../
- name: Configure meson build
run: meson setup ${{ env.BUILD_DIR }} --prefix=/
- name: Build project
run: ninja -C ${{ env.BUILD_DIR }}
- name: Install package
run: |
meson install -C ${{ env.BUILD_DIR }} --no-rebuild
tar cJvf crest-latest.tar.xz --directory=${{ env.BUILD_DIR }} crest
env:
DESTDIR: ${{ env.PWD }}/_dist
- name: Upload binary
if: github.event_name == 'push'
uses: actions/upload-artifact@v2
with:
name: crest-latest.tar.xz
path: crest-latest.tar.xz
- name: Add crest to path
run: |
echo ${{ env.PWD }}/_dist/bin >> $GITHUB_PATH
- name: Download xtb
uses: i3h/download-release-asset@v1
with:
owner: grimme-lab
repo: xtb
tag: v${{ env.XTB_VERSION }}
file: '/xtb-${{ env.XTB_VERSION }}-linux-x86_64\.tar\.xz/'
- name: Add xtb to path
run: |
tar xvf xtb-*.tar.xz
echo ${{ env.PWD }}/xtb-${{ env.XTB_VERSION }}/bin >> $GITHUB_PATH
continuous-delivery:
if: github.event_name == 'push'
runs-on: ubuntu-latest
needs:
- intel-meson-build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
RELEASE_TAG: latest
OUTPUT_INTEL: crest-latest.tar.xz
steps:
- uses: actions/checkout@v4
- name: Install github-release
run: |
go install github.com/github-release/github-release@latest
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV
echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
- name: Set environment variables
run: |
echo "GITHUB_USER=$( echo ${{ github.repository }} | cut -d/ -f1 )" >> $GITHUB_ENV
echo "GITHUB_REPO=$( echo ${{ github.repository }} | cut -d/ -f2 )" >> $GITHUB_ENV
- name: Move/Create continuous tag
run: |
git tag --force ${{ env.RELEASE_TAG }} ${{ github.sha }}
git push --tags --force
- name: Get Time
run: echo "TIME=$(date -u '+%Y/%m/%d, %H:%M')" >> $GITHUB_ENV
- name: Check continuous release status
run: |
if ! github-release info -t ${{ env.RELEASE_TAG }} > /dev/null 2>&1; then
echo "RELEASE_COMMAND=release" >> $GITHUB_ENV
else
echo "RELEASE_COMMAND=edit" >> $GITHUB_ENV
fi
- name: Setup continuous release
run: >-
github-release ${{ env.RELEASE_COMMAND }}
--tag ${{ env.RELEASE_TAG }}
--name "Continuous release version"
--description "$DESCRIPTION"
--pre-release
env:
DESCRIPTION: |
Created on ${{ env.TIME }} UTC by @${{ github.actor }} with commit ${{ github.sha }}.
This is an automated distribution of the latest CREST version.
This version is only minimally tested and may be unstable or even crash.
Use with caution!
https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}
- name: Download Artifacts
uses: actions/download-artifact@v2
with:
path: ${{ github.workspace }} # This will download all files
- name: Create SHA256 checksum
run: |
cd ${{ env.OUTPUT_INTEL }}
sha256sum ${{ env.OUTPUT_INTEL }} > sha256.txt
- name: Add crest-latest to release tag
run: >-
github-release upload
--tag ${{ env.RELEASE_TAG }}
--replace
--name ${{ env.OUTPUT_INTEL }}
--file ${{ env.OUTPUT_INTEL }}/${{ env.OUTPUT_INTEL }}
- name: Add SHA256 checksums to release tag
run: >-
github-release upload
--tag ${{ env.RELEASE_TAG }}
--replace
--name sha256.txt
--file ${{ env.OUTPUT_INTEL }}/sha256.txt