name: environment-files on: push jobs: build: runs-on: ubuntu-latest steps: - name: "Append to $GITHUB_PATH" run: | echo "$HOME/someFolder" >> $GITHUB_PATH - name: "Append some more to $GITHUB_PATH" run: | echo "$HOME/someOtherFolder" >> $GITHUB_PATH - name: "Check PATH" run: | echo "${PATH}" if [[ ! "${PATH}" =~ .*"$HOME/"someOtherFolder.*"$HOME/"someFolder.* ]]; then echo "${PATH} doesn't match .*someOtherFolder.*someFolder.*" exit 1 fi - name: "Prepend" run: | if ls | grep -q 'called ls' ; then echo 'ls was overridden already?' exit 2 fi path_add=$(mktemp -d) cat > $path_add/ls <> $GITHUB_PATH - name: "Verify prepend" run: | if ! ls | grep -q 'called ls' ; then echo 'ls was not overridden' exit 2 fi - name: "Write single line env to $GITHUB_ENV" run: | echo "KEY=value" >> $GITHUB_ENV - name: "Check single line env" run: | if [[ "${KEY}" != "value" ]]; then echo "${KEY} doesn't == 'value'" exit 1 fi - name: "Write single line env with more than one 'equals' signs to $GITHUB_ENV" run: | echo "KEY=value=anothervalue" >> $GITHUB_ENV - name: "Check single line env" run: | if [[ "${KEY}" != "value=anothervalue" ]]; then echo "${KEY} doesn't == 'value=anothervalue'" exit 1 fi - name: "Write multiline env to $GITHUB_ENV" run: | echo 'KEY2<> $GITHUB_ENV echo value2 >> $GITHUB_ENV echo 'EOF' >> $GITHUB_ENV - name: "Check multiline line env" run: | if [[ "${KEY2}" != "value2" ]]; then echo "${KEY2} doesn't == 'value'" exit 1 fi - name: "Write multiline env with UUID to $GITHUB_ENV" run: | echo 'KEY3<> $GITHUB_ENV echo value3 >> $GITHUB_ENV echo 'ghadelimiter_b8273c6d-d535-419a-a010-b0aaac240e36' >> $GITHUB_ENV - name: "Check multiline env with UUID to $GITHUB_ENV" run: | if [[ "${KEY3}" != "value3" ]]; then echo "${KEY3} doesn't == 'value3'" exit 1 fi - name: "Write single line output to $GITHUB_OUTPUT" id: write-single-output run: | echo "KEY=value" >> $GITHUB_OUTPUT - name: "Check single line output" run: | if [[ "${{ steps.write-single-output.outputs.KEY }}" != "value" ]]; then echo "${{ steps.write-single-output.outputs.KEY }} doesn't == 'value'" exit 1 fi - name: "Write multiline output to $GITHUB_OUTPUT" id: write-multi-output run: | echo 'KEY2<> $GITHUB_OUTPUT echo value2 >> $GITHUB_OUTPUT echo 'EOF' >> $GITHUB_OUTPUT - name: "Check multiline output" run: | if [[ "${{ steps.write-multi-output.outputs.KEY2 }}" != "value2" ]]; then echo "${{ steps.write-multi-output.outputs.KEY2 }} doesn't == 'value2'" exit 1 fi